以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [求助]完整的包括止损,移动止赢交易范例使用全局变量variable和extgbdata (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=11098) |
-- 作者:myhcow -- 发布时间:2012/4/16 13:33:19 -- [求助]完整的包括止损,移动止赢交易范例使用全局变量variable和extgbdata 使用全局变量variable { 代码工作在图表自动交易模式下 当出现开仓后,开仓价格相比,最大损失超过2%止损 当出现盈利后,与最大盈利价格相比,回落到60%幅度后止赢离场 } MA1:=MA(CLOSE,5); MA2:=MA(CLOSE,30); variable:maxprofit=0;//有仓位时最大获利幅度 //开仓 IF CROSS(MA1,MA2) THEN BEGIN BUY(1,1); maxprofit:=0; END //平仓 SELL(CROSS(MA2,MA1),0); //判断当前持仓状态下的最大盈利 win:=0; win2:=0; if holding > 0 and enterbars > 0 then begin win:=(c-enterprice)/enterprice*100; //记录最大盈利 if win > maxprofit then maxprofit:=win; win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度 end if holding < 0 and enterbars > 0 then begin win:=(enterprice-c)/enterprice*100; //记录最大盈利 if win > maxprofit then maxprofit:=win; win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度 end //出现浮动亏损比如2%平仓 止损:SELL(win < -2,0); //出现最高盈利后,回落到盈利的60%平仓出场 止赢:SELL(win2 >= 60 and openprofit > 0, 0); 使用全局变量extgbdata MA1:=MA(CLOSE,5); MA2:=MA(CLOSE,30); variable:maxprofit=0;//有仓位时最大获利幅度 //开仓 IF CROSS(MA1,MA2) THEN BEGIN BUY(1,1); EXTGBDATASET(\'maxprofit\',0) ; END //平仓 SELL(CROSS(MA2,MA1),0); //判断当前持仓状态下的最大盈利 win:=0; win2:=0; if holding > 0 and enterbars > 0 then begin win:=(c-enterprice)/enterprice*100; //记录最大盈利 if win > EXTGBDATA(\'maxprofit\') then EXTGBDATASET(\'maxprofit\',win) ; win2:=(EXTGBDATA(\'maxprofit\')-win)/EXTGBDATA(\'maxprofit\')*100; //最大盈利后的回调幅度 end if holding < 0 and enterbars > 0 then begin win:=(enterprice-c)/enterprice*100; //记录最大盈利 if win > EXTGBDATA(\'maxprofit\') then EXTGBDATASET(\'maxprofit\',win) ; win2:=(EXTGBDATA(\'maxprofit\')-win)/EXTGBDATA(\'maxprofit\')*100; //最大盈利后的回调幅度 end //出现浮动亏损比如2%平仓 止损:SELL(win < -2,0); //出现最高盈利后,回落到盈利的60%平仓出场 止赢:SELL(win2 >= 60 and openprofit > 0, 0); 这样写对吗? |
-- 作者:jinzhe -- 发布时间:2012/4/16 14:01:53 -- 既然用了extgbdata,那么就别用variable了 |