[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 241

 
artmedia70:

その理由はもうお分かりですね。重要なのは、i++やi--ではなく、リストのどの端から注文を削除していくかということです。

注文が削除されたときに何が起こるかを理解するためには、注文がどのように配列に格納されるかを知り、理解する必要があります。

最初のオーダーを最初に削除すると(i=0でインデックスされる)、すべてのオーダーのインデックスが配列内でシフトされます - 最初のオーダーはNULLになり、2番目のオーダーは1番目に、3番目のオーダーは2番目に、といった具合です。このため、すべてのオーダーが完全に削除されるわけではありません。実際、iが6になると、6番目のオーダーはオーダーの配列の5番目の位置に移動し、インデックス6でオーダーが選択されることはありません。

リストの末尾から注文を削除すると、シフトは起こりません。最初の注文はリスト内でゼロの位置にあり、それを持ち続けることになります。10番目のオーダーの位置が9だったので、それが削除され、次にリストの位置が8である9番目のオーダーが削除され、オーダーの配列の中で位置が0である最初のオーダーまで、削除されました。

artmedia70には、包括的な回答をいただき、ありがとうございました。そしてnadyaさんにも参加してもらっています.よろしゅうございます
 
マルチカレンシーツールを設定して、1つのウィンドウから複数の通貨を扱えるようにしたのですが、アドバイスをお願いします。しかし、問題は、通貨の切り替えが速すぎて、注文を開く時間がないことです。3分以内に、4つの注文+4つの保留注文がオープンしました。そして、通貨間の切り替えも多かった。
 
volshebnik:
何が良くて、何が悪いのか?)
ユニークな名前を作り、覚えてもらう。あなたのタスクは知らない、必要ないのかもしれない。
 
forexnew:
マルチカレンシーツールを設定して、1つのウィンドウから複数の通貨を扱えるようにしたのですが、アドバイスをお願いします。しかし、問題は、通貨の切り替えが速すぎて、注文を開く時間がないことです。3分以内に、4つの注文+4つの保留注文がオープンしました。そして、通貨間の切り替えも多かった。

http://vinin.ucoz.ru/forum/11
 

Mod_1 と Mod_2 の2つのユーザーモディファイがあります。

いずれも修正条件あり

double TS;
int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);

if (TS < Min_Dist)
TS=Min_Dist;

買いストップロスが トレイリングストップより小さい場合、ストップロス条件では修正が通らないように変更するにはどうしたらよいでしょうか。

売りの場合、ストップロスはトレーリングストップより大きい。

 

こんにちは。

バグを探すのに協力してください。

以下のコードは、テスターでは動作しませんが、デモではそのような問題はありません。ログブックに間違いはない。

ありがとうございました。

  //====================== Отлавливаем прибыль по рынку ===========================================
  if (RinProfit) {
    if(SchBuyLots>0 || SchBuyLots777>0)
     {
      if((SchSellStop_b(MAGIC)>0 && (maM_fast<maM_slow || maH_fast<maH_slow || maOtk_fast<maOtk_slow)) ||
         (SchSellStop_b(MAGIC)>0 && (speedup_H1_ff<(10000+H1_MA_factor_ff) || speedup_H1_ss<(10000+H1_MA_factor_ss) ||
                                     speedup_M15_ff<(10000+M15_MA_factor_ff) || speedup_M15_ss<(10000+M15_MA_factor_ss))) ||
         (SchSellStop_b(MAGIC)>0 && ((maHXX<=H1_point_min  && speedup_H1_ss<(10000+H1_MA_factor_ss)) || maHXX>=H1_point_max)) ||
         (SchSellStop_b(MAGIC)>0 && Fractal_fibo_buy>Fibo_prohibit) ||
         (SchSellStop_b(MAGIC)>0 && TF1S>0 && TF2S>0 && timf1s!=0 && timf2s!=0 && TF1S<TF2S) ||
         (SchSellStop_b(MAGIC)>0 && TF1S>0 && TF2S>0 && timf1s!=0 && timf2s!=0 && TF1S>=TF2S && Bid<price_S))
       {
        while (SchBuyLots+SchBuyLots777>0 && SchSellLots+SchSellLots777>0)
         {
          CloseVstrechnye(MAGIC);
          return (0);
         }
        CloseAll_bMAGIC(Proskalz, MAGIC);
        CloseAll777_b(Proskalz);
        DeleteOtlozhMAGIC(MAGIC);
        DeleteOtlozh777();
        Alert("Позиции Buy закрыты согласно рыночной ситуации.");
        RefreshRates();
        if (Timeout_Trade>0 && ProfHist<=0)
         {
          Comment (SMB,": ТАЙМАУТ ТОРГОВЛИ "); 
          Sleep (Timeout_Trade*60000);
         } 
        RefreshRates();
       }
    }
    if(SchSellLots>0 || SchSellLots777>0)
     {
      if((SchBuyStop_b(MAGIC)>0 && (maM_fast>maM_slow || maH_fast>maH_slow || maOtk_fast>maOtk_slow)) ||
         (SchBuyStop_b(MAGIC)>0 && (speedup_H1_ff>(10000-H1_MA_factor_ff) || speedup_H1_ss>(10000-H1_MA_factor_ss) ||
                                    speedup_M15_ff>(10000-M15_MA_factor_ff) || speedup_M15_ss>(10000-M15_MA_factor_ss))) ||
         (SchBuyStop_b(MAGIC)>0 && ((maHXX<=H1_point_min  && speedup_H1_ss>(10000-H1_MA_factor_ss)) || maHXX>=H1_point_max)) ||
         (SchBuyStop_b(MAGIC)>0 && Fractal_fibo_sell>Fibo_prohibit) ||
         (SchBuyStop_b(MAGIC)>0 && TF1B>0 && TF2B>0 && timf1b!=0 && timf2b!=0 && TF1B>TF2B) ||
         (SchBuyStop_b(MAGIC)>0 && TF1B>0 && TF2B>0 && timf1b!=0 && timf2b!=0 && TF1B<=TF2B && Bid>price_B))
       {
        while (SchBuyLots+SchBuyLots777>0 && SchSellLots+SchSellLots777>0)
         {
          CloseVstrechnye(MAGIC);
          return (0);
         }
        CloseAll_bMAGIC(Proskalz, MAGIC);
        CloseAll777_b(Proskalz);
        DeleteOtlozhMAGIC(MAGIC);
        DeleteOtlozh777();
        Alert("Позиции Sell закрыты согласно рыночной ситуации.");
        RefreshRates();
        if (Timeout_Trade>0 && ProfHist<=0)
         {
          Comment (SMB,": ТАЙМАУТ ТОРГОВЛИ "); 
          Sleep (Timeout_Trade*60000);
         } 
        RefreshRates();
       }
     } 
   }
  //===============================================================================================  
 

MT4とMT5でDLLから関数を呼び出す場合の違いは何ですか?コンパイルすると、MT5では正常に動作しますが、MT4ではエラーになります。

2011.10.06 23:00:34 Solaris executor EURUSDm,M1: dll 'Solaris.dll' から関数 'InfoOfTrading' をコールできない(エラー 127)

これは一体何なんだ?- 私は頭を悩ませていたんです。:(

 
Win32のDLプロジェクトを 作成する
 
sergeev:
Win32のDLプロジェクトを作成する
しかし、MT5では問題なく動作しています
 

上記の質問の続きをさせていただきます。

また、上記のコードを別のEAで使用したことがあります。そのEAの状況は上記のものと似ていますが、コードの条件が全く逆に満たされている点が異なります(デモでは、やはり全てエラーなく動作していました)。しかしある日、テスターが正しく動作し、コードが与えられた条件に従って正しく動作するようになった。

まさに神秘主義ですね。

また、なぜかコードの最適化ができないことがあります。時々、何かを再計算しても、なぜかすべての結果をゼロにリセットしてしまう。異なるブローカーの端末でそのようなことが起こります。しかし、おそらく空にあるすべての星や星座が収束したとき、すべてがあるべき姿で動き出すのでしょう。