系统交易论坛 - 开拓者期货自动交易平台's Archiver

13302164608 发表于 2010-7-24 14:27

程序调试有问题

开仓条件:在2950点下买入一手,每降30点买一手,以此类推
平仓条件:单笔持仓盈利30点即平仓,以此类推
遇的问题:1、同一点位重复开仓
希望您帮我将程序调试一下
Vars
    NumericSeries conFailureCnt(0);
    Numeric WinDots(300);
    Numeric LossDots(300);
    Numeric qsjg(2950); //起始价
    Numeric Type(1);
        Numeric lots(1);
    Numeric MoneyProfit(300);
    Bool         ExitPosition(false);
Begin
    If(BarStatus==0)
    {
        conFailureCnt = 0;
    }else
    {
        conFailureCnt = conFailureCnt[1];
    }
    If(Close < qsjg && MarketPosition == 0)
   {
       conFailureCnt = conFailureCnt  + 1;
       Buy(lots,high,true);
    }
Else  {
                If(close < (qsjg - conFailureCnt*LossDots))
        {
              conFailureCnt = conFailureCnt  + 1;
              Buy(lots,high,true);
        }else
         {SetProfitTarget(Type,MoneyProfit,ExitPosition);
         conFailureCnt = conFailureCnt  - 1;  
    }
        }

End

13302164608 发表于 2010-7-26 14:15

求助

程序调试有问题
开仓条件:在2950点下买入一手,每降30点买一手,以此类推
平仓条件:单笔持仓盈利30点即平仓,以此类推
遇的问题:1、同一点位重复开仓
希望您帮我将程序调试一下
Vars
    NumericSeries conFailureCnt(0);
    Numeric WinDots(300);
    Numeric LossDots(300);
    Numeric qsjg(2950); //起始价
    Numeric Type(1);
        Numeric lots(1);
    Numeric MoneyProfit(300);
    Bool         ExitPosition(false);
Begin
    If(BarStatus==0)
    {
        conFailureCnt = 0;
    }else
    {
        conFailureCnt = conFailureCnt[1];
    }
    If(Close < qsjg && MarketPosition == 0)
   {
       conFailureCnt = conFailureCnt  + 1;
       Buy(lots,high,true);
    }
Else  {
                If(close < (qsjg - conFailureCnt*LossDots))
        {
              conFailureCnt = conFailureCnt  + 1;
              Buy(lots,high,true);
        }else
         {SetProfitTarget(Type,MoneyProfit,ExitPosition);
         conFailureCnt = conFailureCnt  - 1;  
    }
        }

End

lh948 发表于 2010-7-26 14:38

把这一句    If(Close < qsjg && MarketPosition == 0)
改成                If(Close < qsjg && close >= (qsjg - conFailureCnt*LossDots) && MarketPosition == 0)

13302164608 发表于 2010-7-26 15:41

[b] [url=http://www.tradeblazer.net/forum/redirect.php?goto=findpost&pid=52427&ptid=8978]3#[/url] [i]lh948[/i] [/b]

13302164608 发表于 2010-7-26 15:42

[b] [url=http://www.tradeblazer.net/forum/redirect.php?goto=findpost&pid=52427&ptid=8978]3#[/url] [i]lh948[/i] [/b]
多谢指教,但经调试还是重复发买单

13302164608 发表于 2010-7-27 19:58

[b] [url=http://www.tradeblazer.net/forum/redirect.php?goto=findpost&pid=52427&ptid=8978]3#[/url] [i]lh948[/i] [/b]
请老大再帮我看看,多谢

13302164608 发表于 2010-7-30 10:59

改后测试还是重复发单,盼给调调。

lh948 发表于 2010-7-31 21:19

conFailureCnt不需要初始化
加仓与开仓可以写在一起,如下:
        If(Close < qsjg && close >= (qsjg - conFailureCnt*LossDots)  && MarketPosition == 0)
        {
                conFailureCnt = conFailureCnt  + 1;
                Buy(lots,high,true);
                qsjg=qsjg - conFailureCnt*LossDots;
        }
每开一次仓后,将起始价格下调conFailureCnt*LossDots,这样就可以做到每跌30点,加仓一次

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.