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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → 【另类策略】闪灵交易者策略

   

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


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

主题:【另类策略】闪灵交易者策略

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


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
【另类策略】闪灵交易者策略  发帖心情 Post By:2012/12/26 13:25:58 [只看该作者]

闪灵交易者策略

The Ghost Trader Trading Stategy)

在交易中,特别是突破类模型,成功率并不高,若碰上反复的假突破,更是一种灾难。那有没有方法来减少这种情形的发生呢?本文介绍的闪灵交易者策略(The Ghost Trader Trading Stategy)为大家提供了一种方式。

闪灵交易者策略源自于交易者的观察,一些交易者从自己的交易记录中发现,若上一次交易是盈利的,那么下一笔交易是亏损的概率比较大。因此在设计策略时,希望能跳过这些我们认为会亏损的交易。具体到策略中,我们将引入模拟交易的概念(这个概念仅指此策略中代码部分,请勿与金字塔模拟交易混淆), 与之对应的是真实下单模块。模拟交易始终在运行交易条件。而真实下单模块直到上一笔模拟交易是亏损的情况下才执行。

本文的例子,将忠于原策略,建立在一个指数移动平均和RSI指标上。默认只考虑一次亏损的情况,周期为日线,运行模式为走完K线(在小周期运行此策略,效果更明显些)。

开多:9日收盘价指数平均大于等于19日最高价的指数平均并且9日收盘价的RSI指标下穿70

开空:9日收盘价指数平均小于19日最高价的指数平均并且9日收盘价的RSI指标上穿30

平多:最新价下穿20日低点。

平空:最新价上穿20日高点。

以上进出场点并不是这个策略的要点,重在如何记录模拟交易的状况,在金字塔软件中,我们将使用全局变量来构建这个部分。具体的见代码,我会多做些注释。若您完全理解后,移动止盈止损的代码也应不在话下。

代码:
//
策略:闪灵交易者系统
//
类型:
//
版本:1.0
//
修订时间:2012.11.24
//DESIGNED BY ROGARZ
//weibo:http://weibo.com/rogarwahoo

//
中间变量
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
指标默认N19
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);

 

       这个策略虽说是一个完整的策略,但个人觉得更像是一个模板。大家理解后,应很容易修改这个模板,任意发挥,默认只计算一次亏损策略的效果并不明显。若改成比如连亏3次后再交易的情形,交易次数和效果很明显。

 



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
ackvz
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:618 积分:2624 威望:0 精华:0 注册:2010/4/25 15:17:16
  发帖心情 Post By:2012/12/26 17:13:51 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:新手上路 帖子:86 积分:427 威望:0 精华:0 注册:2010/5/5 10:39:30
  发帖心情 Post By:2012/12/26 18:03:58 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
翻手为云
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:28 积分:37 威望:0 精华:0 注册:2013/1/2 10:34:55
感觉很实用,  发帖心情 Post By:2013/1/9 22:28:20 [只看该作者]

我想把这个东西用在我的趋势模型里面,估计能效果会更好呵呵,

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


加好友 发短信
等级:新手上路 帖子:36 积分:233 威望:0 精华:0 注册:2012/12/2 17:54:11
  发帖心情 Post By:2013/2/17 11:45:15 [只看该作者]

rogarz老师,请问如果连亏3次才交易该怎么修改?

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


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2013/2/18 9:53:24 [只看该作者]

以下是引用gwczhwt在2013-2-17 11:45:15的发言:
rogarz老师,请问如果连亏3次才交易该怎么修改?

思路,在设个全局变量记录次数 然后判断 是否打开 真实系统下单开关

 

新增 全局变量 盈亏记录

 

   IF 该笔盈亏>0 THEN BEGIN
    盈亏记录:=0;
    真实系统下单开关:=0;//0代表模拟交易上一笔是赚钱的。
    模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
    模拟平仓价:=0;//将全局变量*模拟开仓价*初始化为0
   END
   IF 该笔盈亏<=0 THEN BEGIN
    if 盈亏记录=0 then 盈亏记录:=1;
    if 盈亏记录=1 then 盈亏记录:=2;
    if 盈亏记录>=2 then 盈亏记录:=3;
    if  盈亏记录=3 then 真实系统下单开关:=1

    模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
    模拟平仓价:=0;//将全局变量*模拟平仓价*初始化为0   
   END
 END



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
free_chase
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:28 积分:96 威望:0 精华:0 注册:2013/1/16 20:54:57
  发帖心情 Post By:2013/4/3 22:51:57 [只看该作者]

这段代码我实在是不会理解。。。

 

 IF 该笔盈亏<=0 THEN BEGIN      \\代表这次模拟交易亏损
if 盈亏记录=0 then 盈亏记录:=1;    \\如果盈亏记录等于0,则盈亏记录等于1;
if 盈亏记录>=2 then 盈亏记录:=3;   \\这样推导下来,只要亏损一次,盈亏记录就可以等于3.
if 盈亏记录=3 then 真实系统下单开关:=1\\这段代码是不是有问题啊???

模拟开仓价:=0;//将全局变量*模拟开仓价*初始化为0
模拟平仓价:=0;//将全局变量*模拟平仓价*初始化为0
END

 

 


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


加好友 发短信
等级:黑侠 帖子:864 积分:607 威望:0 精华:0 注册:2013/3/14 23:16:32
  发帖心情 Post By:2013/4/4 21:56:01 [只看该作者]

他这个应该用 

if 盈亏记录=0 then 
     盈亏记录:=1;
else
    if 盈亏记录=1 then 
    else
        盈亏记录:=2;
   ......
end

这样的来解决。
如果有vba 的 case语句就更明了了

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


加好友 发短信
等级:新手上路 帖子:28 积分:96 威望:0 精华:0 注册:2013/1/16 20:54:57
  发帖心情 Post By:2013/4/5 23:33:29 [只看该作者]

还是不太理解。。。

if 盈亏记录=0 then
盈亏记录:=1;
else
if 盈亏记录=1 then
//这里执行什么语句?能让程序再进行一次盈亏计算呢??
else
盈亏记录:=2;
......
end
求高手再指点下,谢谢。。。

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


加好友 发短信
等级:超级版主 帖子:3534 积分:10003 威望:0 精华:5 注册:2012/5/25 0:00:01
  发帖心情 Post By:2013/4/6 10:14:49 [只看该作者]

上面的写的有问题,只是给个思路

 

如果 原来盈亏记录=0  那么赋值盈亏记录=1

如果 原来盈亏记录=1  那么赋值盈亏记录=2

如果 原来盈亏记录>=2  那么赋值盈亏记录=3

如果 原来盈亏记录=3  那么 真实下单开关=1 (0代表未启动,1代表启动)



金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
总数 17 1 2 下一页