Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共4 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请教老师止损止盈编码问题

1楼
Hxpj 发表于:2019/12/13 10:06:09
借鉴论坛中经验,调整交易,请教老师下面两个问题

问题1、开空:符合开空条件开空单,符合空单止盈条件,同时如果空单盈利30%止盈,亏损2%平空

//开空单

ORDVOL:=1;
variable:maxprofit=0;//有仓位时最大获利幅度
win:=0;
win2:=0;
   
IF holding=0 then BEGIN 
   buyshort(CD_BUY_SHORT,ORDVOL,MARKET);
   maxprofit=0;
END

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 then begin 

   SELLshort(CD_SELL_SHORT,0,MARKET);
   
   IF WIN < -2 THEN 
   
   SELLSHORT(1,0,MARKET);
   
   IF WIN2 >= 30 and OPENPROFIT > 0 then 
   
   SELLSHORT(1,0,MARKET);

END

问题2:多单2%止损

保证金:=AvGENTERPRICE*MULTIPLIER*TACCOUNT(41);
kspc:holding*(AvGENTERPRICE-c)*MULTIPLIER>=0.02*保证金; 


请教老师问题1中这个交易逻辑是否写对,问题1中的止损条件是否优于问题2中的止损指标,问题2中空单止损怎么写?
2楼
yukizzc 发表于:2019/12/13 10:11:26
 win2:=(maxprofit-win)/maxprofit*100; //最大盈利后的回调幅度
这里不用乘以100了,你的maxprofit和win都已经计算过百分比了吧
50% - 10% /50%
不用再*100


空单的holding是小于0的
IF HOLDING<0 then begin 

   SELLshort(CD_SELL_SHORT,0,MARKET);
   
   IF WIN < -2 THEN 
   
   SELLSHORT(1,0,MARKET);
   
   IF WIN2 >= 30 and OPENPROFIT > 0 then 
   
   SELLSHORT(1,0,MARKET);

END
3楼
yukizzc 发表于:2019/12/13 10:11:53
另外你可以先写多头的,不要管空头
等多头都ok了,然后一些逻辑前后换下就是空头了
4楼
Hxpj 发表于:2019/12/13 11:42:41
ORDVOL:=1; {开仓手数}
variable:maxprofit_long=0;//有仓位时最大获利幅度
variable:maxprofit_short=0;
win_long1:=0;
win_long2:=0;
win_short1:=0;
win_short:=0;
 

IF CD_BUY_LONG then 
   BEGIN  
   sellshort(holding<0,holding,market); //周期均线多头排列,则平空开多
   开多:buy(holding=0,ORDVOL,MARKET);
   maxprofit_long=0;
   END
IF HOLDING>0 and enterbars > 0 then  
   BEGIN
   win_long1:=(c-enterprice)/enterprice*100; //记录最大盈利
   IF win_long1 > maxprofit_long then
   maxprofit:=win_long1; 
   win_long2:=(maxprofit_long-win_long1)/maxprofit_long; //最大盈利后的回调幅度
   END
IF CD_SELL_LONG and holding>0 then 
   BEGIN
   平多:SELL(1,holding,market); //多头止盈
   END 
IF HOLDING>0  then                    //2%止损
   BEGIN
   IF win_long1 < -2 THEN
   2多止损:SELLSHORT(1,holding,MARKET);
   END

老师,为什么系统不执行止损??
共4 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.02344 s, 3 queries.