下記の通りif文で取引期間を指定し、条件通りならOrderSend()関数で新規注文するように書いたつもりなのですが、バックテストをしてみるとまったくトレードをしてくれません。
試しにリアルタイムのデモトレードでEAを稼働させてみたら、OrdersTotal() == 0 の条件も無視
し、OrderModify()の指値&逆指値も無視して新規注文を連発します。
わかる方、ご教授お願い致します。
#property version "1.00" extern string coin = "EURJPY"; extern int magic02 = 2345; input double lots = 0.01; double Pips = 0; extern int tp = 100; extern double sl = 25; static int TicNum01; int OnInit() { Pips = AdjustPoint(Symbol()); return 0; } void OnTick() { bool TradeTime; if(StartTimeS() <= EndTimeS() && TimeCurrent() >= StartTimeS() && TimeCurrent() <= EndTimeS()) TradeTime = true; //ショート if(OrdersTotal() == 0 && TradeTime == true) { TicNum01 = OrderSend(coin,OP_SELL,lots,Bid,3,0,0,"Sell",magic02,0,Yellow); bool Modified01 = OrderModify(TicNum01,Bid,Bid + sl*Pips,Bid - tp*Pips,0,Yellow); } } double AdjustPoint(string Currency) { int Symbol_Digits = (int)MarketInfo(Currency,MODE_DIGITS); if(Symbol_Digits == 2 || Symbol_Digits == 3) { double Calculated_Point = 0.01; } else if(Symbol_Digits == 4 || Symbol_Digits == 5) { Calculated_Point = 0.0001; } return(Calculated_Point); } int StartTimeS() { (Year() == 2019 && Month() == 3 && Day() == 11 && Hour() == 15 && Minute() == 30); return 0; } int EndTimeS() { (Year() == 2019 && Month() == 6 && Day() == 15 && Hour() == 20 && Minute() == 30); return 0; }

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/31 11:29
2021/02/01 11:46