以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- [求助]if语句如何加入其他限定条件,如MA (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=43971) |
-- 作者:cxmfrank -- 发布时间:2013/1/2 11:24:59 -- [求助]if语句如何加入其他限定条件,如MA 各位专家好!我想请教一个问题,在金字塔软件中,如果在if语句状态下,我想再加一个限定语句比如:c>Ma(c,60),应该怎么样加入才行啊?
//《定制的海龟交易系统V1.0前台显示版本》 // 适用于多时间框架图表 // 这个版本可以用于在图表上显示信号,也可以做自动交易 // 同一根K线多次发出指令。 // Designed By Likai // 2010.07.16 //声明参数 Input : T20(20,15,60,1) ; Input : T10(10,10,30,1); Input : ATRLen(20,15,30,1) ; Input : PosNum(1,1,20,1) ; //声明变量 nt := 1 ; //调试信息带时间戳 BuyOrderThisBar := 0 ; //当前Bar有过交易 VARIABLE : _DEBUG = 1 ; //是否输出前台交易指令 VARIABLE : _TDEBUG = 1 ; //是否输出后台交易指令 VARIABLE : _DEBUGOUT = 0 ; //是否输出后台交易的调试信息 VARIABLE : myEntryPrice =0 ; //开仓价格 VARIABLE : myExitPrice =0 ; //平仓价格 VARIABLE : TurtleUnits=0 ; //交易单位 VARIABLE : Position=0 ; //仓位状态 //0表示没有仓位,1表示持有多头, -1表示持有空头 VARIABLE : T20Hi=Close ; //20周期的高点 VARIABLE : T20Lo=Close ; //20周期的低点 VARIABLE : T10Hi=Close ; //10周期的高点 VARIABLE : T10Lo=Close ; //10周期的低点 //准备需要计算的变量 T20Hi := ref(hhv(h,T20),1) ; T20Lo := ref(llv(l,T20),1) ; T10Hi := ref(hhv(h,T10),1) ; T10Lo := ref(llv(l,T10),1) ; AvgTR := ref(MA(TR,ATRLen),1) ; //开始执行时 初始化数据 If BARPOS=1 Then Begin //Position := 0 ; End //If //如果当前是没有持仓的状态 If Position=0 and BARPOS>T20 and h>l Then Begin //建立多头进场条件 Long := h > T20Hi ; //多头进场 if Long then begin myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ; buy( _DEBUG,PosNum,limitr,myEntryPrice); Position := 1 ; TurtleUnits := 1 ; N := AvgTR ; BuyOrderThisBar := 1; end //if 这是海龟交易系统的代码,我想加入一个限定语句,即在60MA 再发出买入信号 在60MA上方 我得到的提示是:金字塔的公式系统在处于逐周期模式计算时,像例如REF,MA等带有统计性质的函数以及指标公式引用无法直接使用在IF语句之中(序列运行模式可以),因为带变量判断的IF语句会在某些周期无法调用这些统计函数而导致计算结果出现错误。解决办法是将这些函数放到IF语句之外去执行。 但是还是没搞懂 |
-- 作者:大侠鸟 -- 发布时间:2013/1/2 11:31:02 -- http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 问题8,请认真看5遍以上 |