以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请RogarZ版主把闪灵模型改成连亏3次后再交易,万分感谢  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=52159)

--  作者:阿枫
--  发布时间:2013/5/17 16:59:13
--  请RogarZ版主把闪灵模型改成连亏3次后再交易,万分感谢
 

该模型提供了一个很好的思路,遗憾的是原模型只提供了亏1次后再交易的模板,能不能把它改成连亏3次后再交易的模板?方便我等菜鸟初学者。

个人觉得金字塔可多写一些实有的模板提供。这样可以把初学者快速引入门。


--  作者:阿枫
--  发布时间:2013/5/17 16:59:45
--  
 

//中间变量
INPUT:N1(9,1,100,1),SS(1,1,100);
VARIABLE:该笔盈亏:=0;模拟持仓:=0,模拟开仓价:=0,模拟平仓价:=0,真实系统下单开关:=0;
LC := REF(CLOSE,1);
RSI:=SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;//RSI指标默认N1为9
9日收盘价指数平均:REF(EMA(CLOSE,9),1);
19日最高价收盘价平均:REF(EMA(HIGH,19),1);
20日高点:=REF(HHV(H,20),1);
20日低点:=REF(LLV(L,20),1);
手数:=SS;
//交易条件
开多条件:=9日收盘价指数平均>=19日最高价收盘价平均 AND REF(RSI,1)<70;
开空条件:=9日收盘价指数平均<19日最高价收盘价平均 AND REF(RSI,1)>30;
平多条件:=C<20日低点;
平空条件:=C>=20日高点;


//交易系统
//模拟交易模块
IF 开多条件 AND 模拟持仓=0 THEN BEGIN
   模拟开仓价:=CLOSE;//记录开仓价
   模拟持仓:=1;//模拟持仓为1
END


IF 平多条件 AND 模拟持仓=1 THEN BEGIN
   模拟平仓价:=CLOSE;//记录平仓价
   该笔盈亏:=模拟平仓价-模拟开仓价;//在模拟交易模块中我们只需计算上一笔交易是赚还是亏,在这里我只计算盈亏最后的点数
   模拟持仓:=0;//将全局变量*模拟持仓*初始化为0
   IF 该笔盈亏>0 THEN BEGIN
    真实系统下单开关:=0;//0代表模拟交易上一笔是赚钱的。
    模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
    模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0
   END
   IF 该笔盈亏<=0 THEN BEGIN
    真实系统下单开关:=1;//1代表模拟交易上一笔是亏钱的。
    模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
    模拟平仓价:=0;//将全局变量*模拟平仓价*初始化为0    
   END
 END
 
IF 开空条件 AND 模拟持仓=0 THEN BEGIN
   模拟开仓价:=CLOSE;//记录开仓价
   模拟持仓:=-1;//模拟持仓为-1
END

IF 平空条件 AND 模拟持仓=-1 THEN BEGIN
   模拟平仓价:=CLOSE;//记录平仓价
   该笔盈亏:=模拟开仓价-模拟平仓价;//在模拟交易模块中我们只需计算上一笔交易是赚还是亏,在这里我只计算盈亏最后的点数
   模拟持仓:=0;//将全局变量*模拟持仓*初始化为0
   IF 该笔盈亏>0 THEN BEGIN
    真实系统下单开关:=0;//0代表模拟交易上一笔是赚钱的。
    模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
    模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0
   END
   IF 该笔盈亏<=0 THEN BEGIN
    真实系统下单开关:=1;//1代表模拟交易上一笔是亏钱的。
    模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
    模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0
   END
 END
 
//真实下单模块 
平空:SELLSHORT(平空条件 AND HOLDING<0,手数,MARKET);
平多:SELL(平多条件 AND HOLDING>0,手数,MARKET);
开多:BUY(开多条件 AND 真实系统下单开关=1 AND HOLDING=0,手数,MARKET);
开空:BUYSHORT(开空条件 AND 真实系统下单开关=1 AND HOLDING=0,手数,MARKET);


--  作者:阿枫
--  发布时间:2013/5/19 19:06:35
--  

我搜了写整个论坛,都找不到解决连赢N次和连亏N次的计数问题.问题如下:

赢亏  连赢计数   连亏计数

-          0             1

-          0             2

+         1             0

+         2             0

+         3             0

+         4             0

+         5             0

-          0             1

+         1             0

-          0             1

-          0             2

-          0             3

-          0             4

-          0             5

+         1             0

版主写个模板吧?另外加个连亏3次加一倍仓,连赢3次减一半仓的代码.谢谢


--  作者:RogarZ
--  发布时间:2013/5/19 23:12:00
--  
金字塔的variable你认真学习过了?闪灵的帖子下面有连续3次的解决思路吧
你会用variable 这种问题 肯定自己解决了。


我已经给了思路了  资金管理的模块 我是不会写的,汇总贴我写的很清楚了

[此贴子已经被作者于2013-5-19 23:13:05编辑过]