[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 281

 
Pyro:

タラ


面白いのは、注文の設定価格が4桁に正規化されていることで、つまり、1pipの端数はありえないのです。なぜそうなのでしょうか。そして、はい、ちゃんと動くようになりましたサックス

実は、正規化は計算の瞬間に行わなければならない。

   int dg=MarketInfo(Symbol(),MODE_DIGITS);        // Количество цифр после десятичного точки в цене инструмента
   if (NormalizeDouble(OrderOpenPrice()-(p1+more),dg)==0) {
      // ... тут код, если результатом сравнения стал ноль, т.е. сравниваемые величины равны
      }

と、あなたのコードのいくつかのポイント。

for(int i=1 ; i <= OrdersTotal() ; i++)   // делаете цикл от второго ордера в списке. Почему бы сразу не for(int i=0; i<OrdersTotal(); i++) ?
   {
   if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES))  // если выбрали ЛЮБОЙ ордер, пусть он даже открыт другим советником или вручную
      {                                           
      if(OrderOpenPrice()-(p1+more) == 0)          // сравниваете без нормализации
         {
         ordersethigh1=true;                       // желательно флагу ПЕРЕД циклом задать значение false
         break;
         }
      }
   }
     
if((ordersethigh1==false) && (p2-price>pointsclose))  // второе условие тоже не нормализовано
   {
   OrderSend(Symbol(),OP_SELLLIMIT,baselot,p1+more,3,NULL,NULL,"Comment",0001,0,White);
   }
 

アートメディア70


まあ、あなたのコードを元に書いたんですけどね。とりあえず簡略化(考え中)。ただひとつ明らかになったのは、あらゆるものを正常化する必要があるということです。テスターではすべてうまくいっていたのに)なんだか不思議な感じです。今、解決しているところです。

если выбрали ЛЮБОЙ ордер, пусть он даже открыт другим советником или вручную

この場合、冗長なコードは必要ないのです。でも、ツールのチェックは入れました。

2つのバリエーションがあり、どちらも動作します。

if(OrderOpenPrice()-(channelhigh+more) <=Point*0.5)

if(NormalizeDouble(OrderOpenPrice()-(channelhigh+more),4) == 0)

ありがとうございます!すっきりしました。



 
Pyro:

アートメディア70


まあ、あなたのコードを元に書いたんですけどね。とりあえず簡略化(考え中)。ただひとつ明らかになったのは、あらゆるものを正常化する必要があるということです。テスターではすべてうまくいっていたのに)なんだか不思議な感じです。今、解決しているところです。

この場合、過剰なコードは必要 ありません。でも、ツールのチェックは入れました。

2つのバリエーションがあり、どちらも動作しています。


ありがとうございます!多くのことが解明されました。

選択された注文がどのようなタイプであるかを確認するのは冗長でしょうか?買い注文か売り注文か?チェックせずに、関数が保留中の注文があることを伝える(その存在をチェックしている)。保留中の注文があるかどうかを確認したいので、何らかの型があればtrueを取得します。手動で開いても保留中の注文は4種類あります。混乱を避けるために、関数を呼び出すときに、保留中の注文の種類を渡し、選択した注文の種類が関数に渡されたものと一致するかどうかを確認する方がよいでしょう。
(このチェックは、P277の私の例にはありません)。これは単に保留がないか どうかをチェックするだけです。もしタイプが1より小さく5より大きければ、次のものを選択するために進みます)。

次のページあなたのEAは1つのTFで動作し、もう1つのTFでは別のEAが同時に動作することができます。両者とも同じ記号で動いています。他のEAが開いたポジションは、このEAでは「はい、注文があります」と判断されます。そこで、Expert Advisorが自身の注文とポジションを区別できるように、MagicNumberチェックを導入する必要があります。

したがって、取引商品の記号、マジックナンバー、チェック対象の注文の種類などのチェックは過剰ではなく、必要なものです。これは最低限であって、冗長ではない。

 

同志の皆さん、ごきげんよう。

アドバイスお願いします:最後に閉じた 注文を検索する問題に遭遇した人はいますか?儲かるようになったのか、儲からないようになったのか?

どのような方法をとったのでしょうか?

よろしくお願いします。

R.S. 操作は難しくないのでしょうが、どうやったら近づけるのかがわかりません。

 
artmedia70:

したがって、チェック対象のシンボル、マジックナンバー、オーダーの種類などのチェックは過剰ではなく、必要なものです。これは最低限必要なもので、過剰なものではありません。

ここでの私の間違いは、要するに1つの機能しか載せなかったことです。もちろんチェックはあります。ただ、このコードの部分、いろんな意味でトレーニングになるんですが、EAの一部に過ぎないんです。友人の皆さん、本当にありがとうございました。

 
ramirez17:
簡単な操作なんだろうけど、どうしたらいいのかわからない。
この質問は意外と人気があるんですよ。
Googleのクエリです。
最後のクローズド・オーダー site:mql4.com
 
ramirez17:

同志の皆さん、ごきげんよう。

教えてください:最後に閉じた 注文を探すのに苦労された方はいらっしゃいますか?儲かるようになったのか、儲からないようになったのか?

どのような方法をとったのでしょうか?

よろしくお願いします。

s.s. この操作は難しくないのでしょうが、どうアプローチしたらいいのかわかりません。

https://www.mql5.com/ru/forum/131859/page4#434229

https://www.mql5.com/ru/forum/131859/page4#434230

 
granit77:
この質問は意外と人気があるんですよ。
Googleのクエリです。
最後のクローズド・オーダー site:mql4.com

オッケーです。googleを忘れてました。ここに直行しました :)
 
EAで作成したセットファイルをどのフォルダに格納すればよいのでしょうか?
 
drm1:
EAで作成したセットファイルをどのフォルダに格納すればよいのでしょうか?
エキスパート/プリセット