欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 求助

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2480人关注过本帖树形打印复制链接

主题:求助

帅哥哟,离线,有人找我吗?
新手123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:332 积分:0 威望:0 精华:0 注册:2016/1/23 17:49:23
求助  发帖心情 Post By:2017/12/24 21:37:03    Post IP:223.74.201.58[只看该作者]

老师,

     你好,我有一个思路:我每次开仓一手,当上次平仓亏损时,下次开仓增加上次平仓的手数,在新开仓中计算上次平仓手数的盈利大于或等于上次平仓亏损的金额时,平仓上次亏损的手数,保留新开仓的1手到最后,程序如下:

 

 

//附交易

 

 

if NUMPROFIT(1)<0  then Fbb:=1;
 
if NUMPROFIT(1)<0  then   SSJ:EXITVOL,LINETHICK0;

ELSE  SSJ:=0,LINETHICK0;  

 
 
if NUMPROFIT(1)<0  then 上亏:ABS( NUMPROFIT(1) ),LINETHICK0;
 
ELSE  上亏:=0,LINETHICK0;

 
 
  if Fbb=1 AND ( holding>0    and NUMPROFIT(1)<0  ) AND  ref(holding,1)<0         then
  开多J:buy(holding>0  ,SSJ,  NEXTOPEN  );

  IF  holding>0    and NUMPROFIT(1)<0  AND  ref(holding,1)<0    THEN Fbb:=-1,LINETHICK0;
 
 
if NUMPROFIT(1)<0  then 开多J盈利:( OPENprofit/holding)*SSJ   ,LINETHICK0; 


  if Fbb<0 AND  开多J盈利   >=  ABS( 上亏 )    and ENTERBARS>0 then
 平多J: sell(HOLDING>0, SSJ, NEXTOPEN );
 
 
 
 
  ///////////////////


 if ( Fbb=1 AND holding<0    and NUMPROFIT(1)<0  ) AND  ref(holding,1)>0       then
  开空J:buyshort(holding<0  ,SSJ,  limitr, OPEN );
 
  IF  holding<0    and NUMPROFIT(1)<0  AND  ref(holding,1)>0      THEN Fbb:=-1,LINETHICK0;  
 
 
if NUMPROFIT(1)<0  then 开空J盈利:( OPENprofit/ABS( holding ))*SSJ  ,LINETHICK0;     
 

  if     开空J盈利   >=  ABS( 上亏 )     and ENTERBARS>0 then
  平空J: sell(HOLDING<0, SSJ, NEXTOPEN );
 
    但上面程序没有到我目的,弄了两天两夜都没有结果,能否帮忙检查看看那里出问题了?谢谢.

 

比如"MACD突破零轴价格预测"是软件自带的程序,如下:

 

//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!

//适用模式:“走完一根K线以后”
//若用户模式选为“固定时间间隔”,请将"交易条件"中的CLOSE改为OPEN,避免信号闪烁。
//
//中间变量
DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD :=2*(DIFF-DEA);

手数:=ss;
//交易条件

开多平空条件:=CROSS(MACD,0);//开多平空条件
开空平多条件:=CROSS(0,MACD);//开空平多条件

//交易系统
平空:SELLSHORT(开多平空条件,手数,MARKET);
平多:SELL(开空平多条件,手数,MARKET);
开多:BUY(开多平空条件,手数,MARKET);
开空:BUYSHORT(开空平多条件,手数,MARKET);

 

 

 
 

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;

//注意交易系统先开后平的原则

 

--------------这段程序单独运行正常,当我加入我程序后就不正常了,程序如下:

 

//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!

//适用模式:“走完一根K线以后”
//若用户模式选为“固定时间间隔”,请将"交易条件"中的CLOSE改为OPEN,避免信号闪烁。
//
//中间变量
DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD :=2*(DIFF-DEA);

手数:=ss;
//交易条件

开多平空条件:=CROSS(MACD,0);//开多平空条件
开空平多条件:=CROSS(0,MACD);//开空平多条件

//交易系统
平空:SELLSHORT(开多平空条件,手数,MARKET);
平多:SELL(开空平多条件,手数,MARKET);
开多:BUY(开多平空条件,手数,MARKET);
开空:BUYSHORT(开空平多条件,手数,MARKET);

 

 

//附交易

 

 

if NUMPROFIT(1)<0  then Fbb:=1;
 
if NUMPROFIT(1)<0  then   SSJ:EXITVOL,LINETHICK0;

ELSE  SSJ:=0,LINETHICK0;  

 
 
if NUMPROFIT(1)<0  then 上亏:ABS( NUMPROFIT(1) ),LINETHICK0;
 
ELSE  上亏:=0,LINETHICK0;

 
 
  if Fbb=1 AND ( holding>0    and NUMPROFIT(1)<0  ) AND  ref(holding,1)<0         then
  开多J:buy(holding>0  ,SSJ,  NEXTOPEN  );

  IF  holding>0    and NUMPROFIT(1)<0  AND  ref(holding,1)<0    THEN Fbb:=-1,LINETHICK0;
 
 
if NUMPROFIT(1)<0  then 开多J盈利:( OPENprofit/holding)*SSJ   ,LINETHICK0; 


  if Fbb<0 AND  开多J盈利   >=  ABS( 上亏 )    and ENTERBARS>0 then
 平多J: sell(HOLDING>0, SSJ, NEXTOPEN );
 
 
 
 
  ///////////////////


 if ( Fbb=1 AND holding<0    and NUMPROFIT(1)<0  ) AND  ref(holding,1)>0       then
  开空J:buyshort(holding<0  ,SSJ,  limitr, OPEN );
 
  IF  holding<0    and NUMPROFIT(1)<0  AND  ref(holding,1)>0      THEN Fbb:=-1,LINETHICK0;  
 
 
if NUMPROFIT(1)<0  then 开空J盈利:( OPENprofit/ABS( holding ))*SSJ  ,LINETHICK0;     
 

  if     开空J盈利   >=  ABS( 上亏 )     and ENTERBARS>0 then
  平空J: sell(HOLDING<0, SSJ, NEXTOPEN );
 
 
 

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;

//注意交易系统先开后平的原则

 

 

[此贴子已经被作者于2017/12/24 21:38:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/12/25 9:35:26    Post IP:180.169.30.6[只看该作者]

if NUMPROFIT(1 ) <0 and 开仓条件 then buy(1,exitvol+1,marketr);

 

亏损加仓的话,这条语句就可以了


 回到顶部