以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请老师看末尾协助  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166573)

--  作者:大牛来了
--  发布时间:2018/11/20 11:08:57
--  请老师看末尾协助

 

//定义参数

INPUT:N1(5,1,100,10),N2(10,1,120,10);

//绘制四条均线

MA1:MA(C,N1);

MA2:MA(C,N2);

//准备下单条件,以MA2上穿MA1作为平空开多条件,以MA1下破MA2作为平多开空条件。

COND1:=CROSS(MA2,MA1);

COND2:=CROSS(MA1,MA2);

 

//下单 平空,开多

IF COND1       THEN BEGEIN   

SELLSHORT(1,1,MARKET);

BUY(1,1,MARKET);

 

END

//平多,开空

IF COND2        THEN BEGEIN   

SELL(1,1,MARKET);

BUYSHORT(1,1,MARKET);

END

 

请老师协助:我们想在这个基础上增加几个条件:记录上一次亏损,在下一次开仓,加倍手数。可以添加在上文中

举例:比如上次开1手多仓或者空单,5560价格,平仓后,这个单子是亏损的,那么在下次开仓,加倍开仓。也就是2手。再次亏损,再加加倍2*2=4手,以此类推,请老师代为编写 (盈利的单子,不考虑叠加

 

 


--  作者:FireScript
--  发布时间:2018/11/20 13:58:26
--  
 这个亏损是指平仓亏损吗?另外你这个还有些逻辑不完整,比如本次是亏损的下次是盈利的,那么第三次交易的手数如何确定?
--  作者:大牛来了
--  发布时间:2018/11/20 19:28:23
--  
表达的意思是:亏损一次,下次开仓双倍下单,如果默认为1手,那么亏损一次后,下次开仓是2手
--  作者:FireScript
--  发布时间:2018/11/21 9:30:30
--  
VARIABLE:ss:=1;

//定义参数
INPUT:N1(5,1,100,10),N2(10,1,120,10);
//绘制四条均线
MA1:MA(C,N1);
MA2:MA(C,N2);
//准备下单条件,以MA2上穿MA1作为平空开多条件,以MA1下破MA2作为平多开空条件。
COND1:=CROSS(MA2,MA1);
COND2:=CROSS(MA1,MA2);
//下单 平空,开多
IF COND1 THEN
BEGIN  
SELLSHORT(1,1,MARKET);
if NUMPROFIT(1)<0 then ss:=ss*2;
BUY(1,ss,MARKET);
END

//平多,开空

IF COND2 THEN
BEGIN  
SELL(1,1,MARKET);
if NUMPROFIT(1)<0 then ss:=ss*2;
BUYSHORT(1,ss,MARKET);
END

用全局变量进行下控制就可以了。平仓代码后面直接判断最近一次的盈亏,然后给ss重新赋值。