どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1077

 

このような状況で、#property strictに切り替えた場合、array out of range in '...というエラーはどのように対処するのが正しいのでしょうか。



int limit=rates_total-prev_calculated;

ArrayResize(?,?,?);


for(i=0; i<limit; i++)
 {
  if(Буфер[i]-Буфер[i+1] < 0.0)  Буф2[i]=Буфер[i];
 }
 

このように作る

int limit = prev_calculated > 0 ? rates_total-prev_calculated : rates_total-1;

1の代わりに、0以外の数字を入れることができます。数値が大きいほど、インジケータ起動時にカウントされるバーの数が少なくなります。

そして、削除

ArrayResize(?,?,?);

というのは、まったくもって無駄なことです。

 
AlexeyVik:

このように作る

1の代わりに、0以外の数字を入れることができます。数値が大きいほど、インジケータ起動時にカウントされるバーの数が少なくなります。

そして、削除

を使うのは、まったくもって無駄なことです。

今ならわかる。アドバイスありがとうございました。
 
というコマンドがありますが、今日の10時ではなく、明日の10時にするにはどうしたらいいでしょうか?
 
kocunyc89 : t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00");How do I set not today 10:00 but tomorrow 10:00? datetime dt=TimeLocal() です。
datetime t1=StrToToTime(TimeToStr(dt, TIME_DATE)+" 10:00") + 24*60*60;

Alert("Now = ",dt, " Tomorrow at 10:00 = ",t1).Now(今) = ",dt, " 明日の10:00 = ",t1)。

 
LRA:
kocunyc89 : t1=StrToTime(TimeToStr(dt, TIME_DATE)+" 10:00");How do I set not today 10:00 but tomorrow 10:00? datetime dt=TimeLocal() です。
datetime t1=StrToToTime(TimeToStr(dt, TIME_DATE)+" 10:00") + 24*60*60;

Alert("Now = ",dt, " Tomorrow at 10:00 = ",t1))。

ありがとうございました。
 
 if (Sob_01_0_1==1 && OrderSelect(ticket3_buy, SELECT_BY_TICKET)==true)
        {
         Alert("Sob_01_0_1=",Sob_01_0_1);
         Alert("здесь код перестает работать?"); 
                   
        if (OrderTakeProfit()>0 && OrderCloseTime()>0)
           {
           Alert("третий ордер на покупку закрыт, событие 011");
           bool close6=OrderClose(ticket3_sell, lot3, Ask, 20, clrRed);
                if (close6==true)
                   Alert("третий ордер на продажу закрыт");
                   else Alert("ошибка закрытия третьего ордера на продажу", GetLastError());
           bool close7=OrderClose(ticket2_sell, lot2, Ask, 20, clrRed);
                if (close7==true)
                   Alert("закрыт второй модифицированный ордер на продажу");
                   else Alert("ошибка закрытия второго модифицированного ордера на продажу ticket2_sell ", GetLastError());
               Sob_01_0_1++;
               Sob011++;
           }
         }
 
bobrush:
こんばんは、エラーの内容を教えてください。Alert("here code stops working?"); の後、コードが動かなくなる。つまり、ticket3_buyが利益確定した場合、if文は実行 されないのです。
 

皆さん、こんばんは。iLowestとiHighestの機能について、ダミーからの質問です。当初は、これらの機能を使って、EAで高値・安値のブレイクを見つけ、保留注文を出したいと考えていました。iLowestではすべてうまくいくが、iHighestでは注文が設定されない。しかし、この問題はすでに別の方法で解決しているので、これは言葉だけです。新しい価格で注文を出すために、キャンセルされた注文を削除しなければならなくなった。上記の機能を再度使用してみました。iLowestと保留中の 買い注文の 削除は問題ありません。iHighestの売り注文の削除には問題があります。条件がまだ満たされていない(価格が最大値を下回っている)ときに注文が削除され、新しい注文が出され、再び削除され、ということを繰り返します。価格が最大値を超えた場合は削除され、新しいものは実行されませんが、現在の価格が前回の最大値を下回るとすぐに「スクランブル」が再び開始されます。

条件は以下のように書かれています。

if(iHighest(NULL, 0, MODE_HIGH, 70, 2) < iHigh(NULL, 0, 1))

{

DeleteOrders(OP_SELLSTOP, Magic)を実行します。

}

if(iLowhest(NULL, 0, MODE_HIGH, 70, 2) > iLow(NULL, 0, 1))

{

DeleteOrders(OP_BUYSTOP、Magic);

}

(削除機能は別途書き出します)。何が間違っているのか、エラーは何なのか?

 
ご迷惑をおかけしました。すべて解決しています。EAの削除条件は、フォーラムに書いたものと少し違っていて、現在のバーに対するオフセットがありませんでした。