初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 405

 
Leanid Aladzyeu:

以下はそのコードです。

if(OrderStopLoss()>Ask+(TrailingStop+TrailingStep)*Point)

OrderStopLoss()が0になる可能性を考慮していない。また、いずれの場合も0はAsk+(TrailingStop+TrailingStep)*Pointという 式より小さくなり 条件はfalseを返します。

 
if((OrderStopLoss()>Ask+(TrailingStop+TrailingStep)*Point)||OrderStopLoss()==0)
試しに使ってみて、効果を実感してください。コードにはあまり手をつけていません。
 

Vitalii Ananev さんVladimir Zubov さん、ありがとうございました。

RSIをベースにしたEAを作成中です。 EAの原理は、指標によって注文を開始し、同じ指標によって決済することです(私は終値がわかりません)。

if(OrderType()==OP_BUY && irsa <=20 || irsa >=40 )

OrderClose(ticket,Lot,Ask,Slippage,Blue)です。

return(0)です。

この条件は満たされていない。なぜ?(注文を開いてすぐに閉じる、というループになります)。

ここからが本題です。私のExpert Advisorは多数の注文で動作し、私は市場でのすべての注文の平均、高値と安値を計算する必要があります、私は合計利益を達成するためにすべての注文の終値を見つける方法と他の同様の操作を行うには?

 
Leanid Aladzyeu:

参考文献にあるように、エラーが出ます。

はい!?また、どのようなエラーが出るのでしょうか?コンパイラは何と言ってるんだ?

 
Leanid Aladzyeu:

Vitalii Ananev さんVladimir Zubov さん、ありがとうございました。

RSIをベースにしたEAを作成中です。 EAの原理は、指標によって注文を開始し、同じ指標によって決済することです(私は終値がわかりません)。

if(OrderType()==OP_BUY && irsa <=20 || irsa >=40 )

OrderClose(ticket,Lot,Ask,Slippage,Blue)です。

return(0)です。

この条件は満たされていない。なぜ?(注文を開いてすぐに閉じる、というループになります)。

ここからが本題です。私のExpert Advisorは多数の注文を扱うことになりますが、市場でのすべての注文の平均、高値、安値を計算する必要があります。合計利益を達成するためにすべての注文の終値を求める方法とその他の同様の操作を行うにはどうしたらいいですか?

ポジションの終値は、ポジションが決済されるまでわかりません。その後、OrderClosePrice()という関数で、取引履歴の中の終値を調べることができます。

決済条件が成立しているため、ポジションを開き、すぐに決済します。クローズ条件のロジックを確認します。まずはこのような書き方をしてみてください。

if(OrderType()==OP_BUY && (irsa <=20 || irsa >=40))
{
  OrderClose(ticket,Lot,Ask,Slippage,Blue);

 return(0); 
}

論理式の計算の優先順位についての参考文献をご覧ください。

"マーケットにあるすべての注文の平均、高値、安値を計算する必要があります" - すみません、どのような価格のことを話しているのでしょうか?オープンオーダー価格?通貨ペアの現在の価格?すべてのオープンポジションの利益の合計が、損失なしで到達する価格?

 
Tapochun:

はい!?また、どのようなエラーが出るのでしょうか?コンパイラは何と言ってるんだ?

すみません、エラーはないのですが、サンプルメソッドがうまくいきません(トローリングでエラーが出ます)。
 
Vitalii Ananev:

ポジションの終値は、ポジションが決済されるまでわかりません。OrderClosePrice()関数は、取引履歴で確認することができます。

クローズ条件が成立しているため、ポジションをオープンし、すぐにクローズします。クローズ条件のロジックを確認します。まずはこのような書き方をしてみてください。

論理式の計算の優先順位に関するヘルプをご覧ください。

さて、どのようにグリッドと、例えばであるために、そこに総TPまたは(および)合計価格を必要としています。

おそらく、価格が保存されるべきバッファがあるか、またはインジケータ自体が最後の注文のオープン 価格が保存されるバッファを持っています(そして、あなたはそこから私たちのグローバルバッファに価格を取得し、保存することができます)。

 
Leanid Aladzyeu:

例えばグリッドを設定する場合、合計TPまたは(および)合計価格が必要になります。

多分、価格を保存するためのバッファがあるか、またはインジケータ自体に、最後の注文の始値が 保存されるバッファがあるのでしょう(そしてそこから、グローバルバッファにそれを取り込んで保存することができます)。

コバレフ教科書で勉強を始めることをお勧めします(当サイトで紹介しています)。もちろん、少し古いものですが、ドキュメントと組み合わせれば大丈夫です
 
Leanid Aladzyeu:

Vitalii Ananev さんVladimir Zubov さん、ありがとうございました。

RSIをベースにしたEAを作成中です。 EAの原理は、指標によって注文を開始し、同じ指標によって決済することです(私は終値がわかりません)。

if(OrderType()==OP_BUY && irsa <=20 || irsa >=40 )

OrderClose(ticket,Lot,Ask,Slippage,Blue)です。

return(0)です。

この条件は満たされていない。なぜ?(注文を開いてすぐに閉じる、というループになります)。

ここからが本題です。あなたのEAが多数の注文を扱うことになり、市場でのすべての注文の平均、高値、安値を計算する必要がある場合、合計利益を達成するためにすべての注文の終値をどのように見つけるか、その他の同様の操作を行うか。

あなたは、ascの買い注文を決済しようとしているのです。

それとも、経験則に慣れているのでしょうか?

 
Leanid Aladzyeu:

グリッドを設定する場合、合計TPまたは(および)合計価格が必要になります。

多分、価格を保存するためのバッファがあるか、またはインジケータ自体に、最後の注文の始値が 保存されるバッファがあるのでしょう(そしてそこから、グローバルバッファにそれを取り込んで保存することができます)。

すべてのポジションの平均建値を計算する必要があります。そして、それに基づいて、すべてのポジションの合計テイクプロフィットを計算します。ポジションのオープンプライスを知ることができます(OrderOpenPrice())。すべてを合計し、オープンポジションの数で割る。
理由: