您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

新手,请帮忙看看这个函数 [金字塔]

  • 咨询内容: 因为我发现在公式编辑器里直接使用sendmail函数真的好卡好卡  所以我想把我需要的信息都写入到具有发邮件功能的自定义函数里面,然后再公式里直接执行。
    因为刚开始接触金字塔,以前也没学过VBA,所以对金字塔的对象的一些用法还不是很熟悉   麻烦斑竹帮我看看
    Function jf_mail(Formula,n)    If Formula.WorkMode = 0 Then        Exit Function     End If    jf_mail=0
        Set jfmainGrid = GetMainGrid  ’获得当前指标的主图对象    symbol=jfmainGrid.StockName    ’获取主图对象的品种名称    prperio=jfmainGrid.CycType     ’获得主图当前周期属性 并且在下面的select case函数里得到实际的周期数值    Select Case prperio Case 0 perio=1 Case 1 perio=5 Case 2 perio=15 Case 3 perio=30 Case 4 perio=60 Case 5 perio=240 Case Else perio=0 End Select        Set jfHistory = Grid.GetHistoryData() ’获取当前指标窗体对象    now_j=jfHistory.j(jfHistory .Count-1)   ’获取当前kdj的 j 值    if jfHistory.j(jfHistory .Count-2)>=now_j   ’对比j值  看是上升还是下降,上升则赋值con1字符到kdj_dk,下降则赋值kdj_dk为con2    Then kdj_dk="con1"    else kdj_dk="con2" mailcont= symbol + "M" + prperio + " KDJ." + kdj_dk + "." + now_j    ’将获取到的数值都加起来赋值给mailcont         ’下面是发邮件的部分    Set smtpmail=CreateObject("jfmail.smtpmail")        smtpmail.sendername="111"    smtpmail.senderaddress="111@126.com"    smtpmail.subject="预警邮件"'            Call smtpmail.addreceiver("1","111@126.com") '前面第一个参数不知道是什么    Call smtpmail.addtextcontent(mailcont)    Call smtpmail.sender("smtp.126.com","111@126.com","111")End Function


    想确认的是1  获得主窗体的品种名,当前周期, 获得指标窗口(假设是KDJ指标)的J值并对比与前一根k对应的J值 方法是否正确,如果不对该怎么写2  发邮件就这样子写就可以了吗 [此贴子已经被作者于2016-7-7 1:23:59编辑过]

     

  • 金字塔客服: 我的目的是在公式里的某个条件成立的时候执行这个函数,并且让这个函数里有指标和当前品种的几个信息

     

  • 用户回复: 请问你这个公式有什么运行问题吗?

     

  • 网友回复: 没反应、、、、

    Function jfma(Formula,n)    jfma=0    d=0    MsgBox dEnd Function
    新建了这个一个自定义函数

    然后我在公式里写aaa:if(ref(c,2)!=ref(c,1),JFMA(0),0);
    这样子也没反应

     

  • 网友回复: 自己调试一下,看看到底这个自定义函数被你的PEL公式调用了没有

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容