设为首页收藏本站

 找回密码
 注册
查看: 882|回复: 3
打印 上一主题 下一主题

求助,辛苦了 [复制链接]

Rank: 1

精华
0
UID
263897
积分
4
帖子
3
主题
1
阅读权限
10
注册时间
2018-3-29
最后登录
2019-4-9
跳转到指定楼层
1#
发表于 2019-3-29 10:30:33 |只看该作者 |倒序浏览
帮忙编写公式;超级图标叠加一个商品,两个品种同时买入,持仓盈利和亏损达到值全部平仓。平仓后两品种再同时反向开单。(止盈值和止损值可以优化的参数)

Rank: 1

精华
0
UID
263897
积分
4
帖子
3
主题
1
阅读权限
10
注册时间
2018-3-29
最后登录
2019-4-9
2#
发表于 2019-3-29 10:35:44 |只看该作者

Params
    Numeric fsLength(8);                   // 止盈数
    Numeric teLength(88);                   // 止损数
    Bool LastProfitableTradeFilter(True);   // 使用入市过滤条件
       
       
Vars
        Numeric MinPoint;                       // 最小变动单位
    Numeric ExitHighestPrice;               // 离市时判断需要的N周期最高价
    Numeric ExitLowestPrice;                // 离市时判断需要的N周期最低价
    Numeric myEntryPrice;                   // 开仓价格
    Numeric myExitPrice;                    // 平仓价格
        NumericSeries preEntryPrice(0);               // 前一次开仓的价格
        BoolSeries PreBreakoutFailure(false);        // 前一次突破是否失败
        Numeric  ceshi(0);
       
Begin
    If(BarStatus == 0)
    {
                preEntryPrice = InvalidNumeric;
                PreBreakoutFailure = false;
        }       
       
        // 集合竞价和小节休息过滤
        If(!CallAuctionFilter()) Return;

        MinPoint = MinMove*PriceScale;

        ExitLowestPrice = LowestFC(Low[1],teLength);
        ExitHighestPrice = HighestFC(High[1],teLength);
       

    // 长周期突破开仓 Failsafe Breakout point
    If(MarketPosition == 0 &&  ceshi == 0 )
    {
        data0.Buy(1,myEntryPrice+50);
                data1.SellShort(1,myEntryPrice+50);
               
               
                ceshi = 8;
    }
       
       
            If(MarketPosition == 0 && ceshi == 8  )
    {
        data0.SellShort(1,myEntryPrice-50);
                data1.Buy(1,myEntryPrice-50);
               
                ceshi=0;
               
    }
       
       
               
                If(PositionProfit > fsLength && ceshi == 0 ) // 持仓盈亏达到止盈位置
    {
        
            myExitPrice = Min(High,ExitHighestPrice + MinPoint);
            data0.BuyToCover(0,myExitPrice+50);    // 数量用0的情况下将全部平仓
                        data1.Sell(0,myExitPrice+50);    // 数量用0的情况下将全部平仓
               
    }
       
                        If(PositionProfit > fsLength &&ceshi == 8) // 持仓盈亏达到止盈位置
    {
        
            myExitPrice = Min(High,ExitHighestPrice + MinPoint);
            data0.Sell(0,myExitPrice-50);    // 数量用0的情况下将全部平仓
                        data1.BuyToCover(0,myExitPrice-50);    // 数量用0的情况下将全部平仓
               
    }
       
       
        If(PositionProfit < -teLength && ceshi == 0) // 持仓盈亏达到亏损
    {
        
            myExitPrice = Min(High,ExitHighestPrice + MinPoint);
            data0.BuyToCover(0,myExitPrice+50);    // 数量用0的情况下将全部平仓
                        data1.Sell(0,myExitPrice+50);    // 数量用0的情况下将全部平仓
               
    }
       
                        If(PositionProfit < -teLength &&  ceshi == 8) // 持仓盈亏达到亏损
    {
        
            myExitPrice = Min(High,ExitHighestPrice + MinPoint);
            data0.Sell(0,myExitPrice-50);    // 数量用0的情况下将全部平仓
                        data1.BuyToCover(0,myExitPrice-50);    // 数量用0的情况下将全部平仓
               
    }
       
       
End

代码我是这样写的,不知道哪里问题。出来的效果不对

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
3#
发表于 2019-3-29 13:43:24 |只看该作者
fuli60 发表于 2019-3-29 10:35
Params
    Numeric fsLength(8);                   // 止盈数
    Numeric teLength(88);               ...

positionprfit这个函数只能取到data0的合约的交易盈亏情况。并非两个合约整体盈亏。
这一点有考虑过吗?

使用道具 举报

Rank: 1

精华
0
UID
263897
积分
4
帖子
3
主题
1
阅读权限
10
注册时间
2018-3-29
最后登录
2019-4-9
4#
发表于 2019-4-9 11:50:16 |只看该作者
小米 发表于 2019-3-29 13:43
positionprfit这个函数只能取到data0的合约的交易盈亏情况。并非两个合约整体盈亏。
这一点有考虑过吗? ...

data0.PositionProfit+data1.PositionProfit 代替  之前positionprfit可以吗?

使用道具 举报

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

bottom

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

GMT+8, 2024-5-5 23:54

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部