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

 
MaxZ:

私は何かを見逃しているに違いない。



NewOrderは、ありがとうございました。
 
SeALALex:

NewOrderを実装しました、ありがとうございます、これで注文はうまくいきました。

このコードには注意が必要です。その場で書いたもので、テストはしていません:)))

そして、あなたの問題を解決する方法は1つしか書いていません。


ところで、先ほどは次のようなコードを出していましたね。

Болк открытия на бай
if(Buy==true) 
  {Buy=false;

   ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),5,SL,TP,Order,070177,0,Orange);
   if(ticket>0)
    { 
     if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
      {Print("BUY order opened : ",OrderOpenPrice());
       Alert("Buy Order for ",Symbol());
       SendMail("Buy Order "+Symbol()+" "+Ask,SL);     
       }
     }
     else Print("Error opening BUY order : ",GetLastError()); 
     return(0); 
   }

例えば、リクオートが あった場合はどうでしょうか?そうすると、シグナルは正しいかもしれないが、買い注文は開かれない。そして数時間後、価格は大きく上昇したが、リクオートによりBUYオーダーが開かれていないことがわかるだろう...。

 
MaxZ:

このコードには注意が必要です。その場で書いたもので、テストはしていません:)))

そして、あなたの問題を解決する方法は1つしか書いていません。


ところで、先ほど次のようなコードを引用していましたね。

例えば、リクオートがあった場合はどうでしょうか?その場合、シグナルは正しいかもしれないが、買い注文は開かれない。そして、数時間で価格が大きく上昇したことがわかりますが、リクオートによりBUYオーダーが開かれていません・・・。


また、それに対する保険はどうするのですか?

 
SeALALex:


また、それに対するヘッジはどのように行うのでしょうか?

最も基本的な方法は、コードを別のものに書き換えることです。

Болк открытия на бай
if(Buy==true) 
  {ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),5,SL,TP,Order,070177,0,Orange);
   if(ticket>0)
    { 
     if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
      {Buy=false;
       Print("BUY order opened : ",OrderOpenPrice());
       Alert("Buy Order for ",Symbol());
       SendMail("Buy Order "+Symbol()+" "+Ask,SL);     
       }
     }
     else Print("Error opening BUY order : ",GetLastError()); 
     return(0); 
   }

注文がオープンしない限り、買いポジションをオープンするシグナルはTrueの状態でハングアップします。

 
MaxZ:

最も初歩的な方法は、コードを別のものに書き換えることです。

注文が開くまで、買いのロングポジションを開くためのシグナルはTrueの状態で待機します。


ありがとうございました!そして、Romanにも感謝です。

証拠金なしで一連の買い建玉でロットを増やしたい(証拠金がロットを減らすような影響を与えることがあるので、必要ない)、一連の注文で一定の大きさで厳密に増やしたい。すなわち、1つの基準に従ってトレンドがある場合、買いシグナルが表示され、2番目の基準に従って追加の買いシグナルが表示され、注文が開かれます。最初の基準ではまだ買いシグナルで、2番目の基準に従って、小さな補正後に追加の買いシグナルが表示されて、別の注文が開かれますが、大きな注文で(サイズは初期パラメータで設定されています)、すべての買い注文が終了すると、売りシグナルが現れ、すべてのロットの初期サイズで再び開始します。

どのようなコードを表示させればよいのでしょうか?

 
SeALALex:


ありがとうございました!そして、Romanさんにも感謝です。

しかし、私はまだそれが一定のステップでロットを増加させることができません、私はマージンなしで一連のオープン買い注文でロットを増加させる必要があります(マージンが時々大きく減少し、私はそれを必要としないため)、私は一連の注文で特定のサイズによって厳格な増加を必要としています。

ロット計算でマージンを使わず、extern-variablesなどで指定した定数パラメーターだけで運用すると、それに応じてロットも定数値でしか増えない。コードの書き方の原理は先に述べたとおりです。

SeALALex:


例えば、ある基準で買いシグナルが出た後、2番目の基準で追加の買いシグナルが出た場合、注文が出され、1番目の基準では買いシグナルが残り、2番目の基準では、 少し修正した後、再び買いシグナルが出、さらに注文が出されますが、サイズは大きく(サイズは初期パラメータで設定)、すべての買い注文が終了すると売りシグナルが出て、すべてが再び初期ロットから開始さ れます。

お願いします、どのようなコードの断片を表示する必要があるのでしょうか?

変数Lots、LotsInitial、LotsStepを持っています。トレンドが変わったら、Lotsをゼロにリセットし、LotsInitialに初期値を割り 当てる。トレンドがまだ続いていて、新規注文を出すシグナルが既に送られている場合は、LotsStepのステップで変数Lotsを増やし、注文を出 します。

論理をすべて理解しているようで、なぜかif文にできない。なぜか、わからない。

もしかしたら、これが役に立つかもしれません。

extern LotsInitial = 0.5;
extern LotsStep    = 0.1;
       Lots;

int start()
{
   ...

   if ((Тренд окончен) && (Все ордера закрыты) && (Пришёл сигнал о возможном начале нового тренда))
      Lots = LotsInitial;
 
   if ((Тренд подтверждён) && (Коррекция) && (Пришёл ещё сигнал открыться по тренду))
      Lots += LotsStep;
  
   ...
}
 
MaxZ:

ロット計算でマージンを使用せず、extern変数などで設定した定数パラメータのみで運用する場合、それに伴いロットも定数値のみで増加することになります。コードの書き方の原理は先に述べたとおりです。

変数LotsとLotsStepがありますね。トレンドが変わったら、Lotsをゼロにリセットして初期値を割り当てる。まだトレンドが続いていて、シグナルがすでにオープンしている場合は、Lots変数をLotsStep単位で増やし、新しい注文をオープンします。

全体のロジックは理解しているのに、なぜかif文にできない......というのがわかりますね。なぜかというと、わからないんです。


私はコードの一部をファイルとして開くための責任ファイルとして置くことができ、あなたが見て...したのですが、投稿したコードに何か問題があるようで、もう一段階開くのですが、ちょっと違うようです。
ファイル:
 
SeALALex:

ファイルとして開くためのコードの一部を貼り付けて、それを見ていただくことはできますか...?を貼り付けたのですが、投稿したコードに何か問題があるようで、もう一歩ですが長い目で見て開いています。

最初にすべてのエラーを修正したはずです。EAに何かを追加しないと動かないのに、なぜ追加するのですか?しかし、このコードは完全に機能するEAには見えません。一部を切り取って、今になって間違いを直せということなのでしょう。:)))

例えば、init()が閉じないとか...。そして、無名変数:LastOrder...

これらのエラーを修正してください。

 
MaxZ:

まず、すべてのエラーを修正したほうがいい。Expert Advisorに何かを追加しないと動作しないのに、なぜ追加するのですか?このコードはExpert Advisorの全機能を備えているわけではなさそうです。一部を切り取って、今になって間違いを直せということなのでしょう。:)))

例えば、init()が閉じないとか...。そして、無名変数:LastOrder...

エラーの修正をお願いします。


はい、私は建設セットとして組み立てて動作するように見える、今確かに多かれ少なかれ、通常のフォームにつながるようにしようとすると、レイアウトされます。
 
splxgf:


NDのことではないんです。pointはポイントの大きさで、0を5倍すると例えば0.00005になります。この数字をOrderClosePrice()-OrderTakeProfit()と比較しても意味がないと思います。TPは、全く同じ終値を保証するものではありません。さらに、ベイスとセルフィッシュではチェックの条件が違ってきます。

このデザインは、より信頼性の高いものです。



ありがとうございます!! 読書中。 しかも、バイとセルフでテスト条件が違うというのだから、驚きです。