设为首页收藏本站

 找回密码
 注册
楼主: nopain

一个简单顺势交易系统的例子 [复制链接]

Rank: 1

精华
0
UID
271012
积分
8
帖子
6
主题
1
阅读权限
10
注册时间
2018-10-9
最后登录
2020-11-29
发表于 2018-11-13 22:19:57 |显示全部楼层
我以你的模型为基础,把你的顺势多单交易系统改写成一个空单顺势交易系统,编译保存没什么问题,但测试时发现无论你测试时间从何时开始都只有一个交易记录。即从测试第一天开仓到最后一天平仓,长不到原因,请帮我检查一下问题出在哪里?代码如下:
Params
    Numeric TrailingSet(0.382);       // 回撤开仓比例设置,从最高点下跌的比例
    Numeric StopLossSet(0.5);        // 止损比例设置
Vars
    Bool startCondition(False);         // 启动条件
    Bool EntryCondition(False);        // 开仓条件
    Bool ExitCondition(False);          // 平仓条件
    NumericSeries highestValue(0);  // 前2个周期的最高价
    NumericSeries lowestValue(0);   // 前2个周期的最低价
    Numeric myEntryPrice(0);          // 开仓价格
    Numeric myExitPrice(0);            // 平仓价格        
Begin
    highestValue = highestValue[1];
    lowestValue = lowestValue[1];
    If(MarketPosition ==0 ) // 当前空仓
    {
        If(Close[2]<Open[2] && Close[1] < Open[1] && Close[1] < Close[2])
        {
            startCondition = True;
            highestValue = max(high[2],high[1]);
            lowestValue = min(low[2],low[1]);
        }
        
        If(startCondition)
        {
            EntryCondition = ((Open-lowestValue) / (highestValue - lowestValue) > TrailingSet )&& // 开盘价即满足反弹条件,用开盘价进行交易
            (Open < ((highestValue - lowestValue)*StopLossSet)-lowestValue) ; //  开盘价不能高于预设的止损价                                                
            If( EntryCondition)
            {
                SellShort(1,Open);
            }Else // 再看其它价格是否满足
            {
                EntryCondition = (high -lowestValue  ) / (highestValue - lowestValue) > TrailingSet ; // 最高价满足反弹条件,用高于TrailingSet设置的最近价位建仓
                If(EntryCondition)
                {
                    myEntryPrice = (HighestValue - LowestValue ) * TrailingSet+lowestValue ;
                    myEntryPrice = IntPart(myEntryPrice / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 对价格进行处理          (本行没修改过)                           
                  
                                   If(myEntryPrice >= low &&  myEntryPrice <= High)      
                    {
                        SellShort(1,MyEntryPrice); //开仓做空
                    }
                }                        
            }
        }
    }else If(MarketPosition == -1) // 当前空仓
    {
        ExitCondition = ( high - lowestValue  )/(highestValue - lowestValue) > StopLossSet;        // 止损条件满足
        If(ExitCondition)
        {
            myExitPrice = lowestValue + (HighestValue - LowestValue ) * StopLossSet;                        
            myExitPrice = IntPart(myExitPrice / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 对价格进行处理
            BuyToCover(CurrentContracts(),myExitPrice);     //空头止损平仓
        }Else // 获利平仓
        
                {
            ExitCondition = ( AvgEntryPrice() -low ) > (highestValue - lowestValue); // 获利平仓条件满足
            If(ExitCondition)
            {
                myExitPrice =  AvgEntryPrice() - (HighestValue - LowestValue );                                
                myExitPrice = IntPart(myExitPrice / (PriceScale()*MinMove)) *(PriceScale()*MinMove); // 对价格进行处理   (本行没修改过)
                If (myExitPrice >= low && myEntryPrice <= high)
                {
                    BuyToCover(CurrentContracts(),myExitPrice);
                }Else
                {
                    BuyToCover(CurrentContracts(),Close);
                }
            }
        }
    }
End

使用道具 举报

Rank: 1

精华
0
UID
235928
积分
35
帖子
26
主题
8
阅读权限
10
注册时间
2016-6-4
最后登录
2021-8-26
发表于 2019-3-29 18:26:58 来自手机 |显示全部楼层
回复就可以看看代码吗

使用道具 举报

Rank: 1

精华
0
UID
277168
积分
36
帖子
19
主题
13
阅读权限
10
注册时间
2019-3-26
最后登录
2019-12-2
发表于 2019-3-31 21:47:58 |显示全部楼层
复制到公式里面了,怎么不行,不能保存 说77 行 END 缺少函数

使用道具 举报

Rank: 2

精华
0
UID
288297
积分
60
帖子
41
主题
7
阅读权限
30
注册时间
2020-1-31
最后登录
2020-5-12
发表于 2020-2-26 15:44:53 |显示全部楼层
复制取TBquan编译,为什么出现1002错误,定位在第8行

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-17 06:01

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部