if (invertStart == true) // получил событие, о том что есть две позиции и одну можно закрыть.
{
int npos_L1=0; NPos_L1(npos_L1);
if(npos_L1==1)
{
int positions=PositionsTotal();
for(int i=0;i<=positions;i++)
{
ulong ticket=PositionGetTicket(i);
if(ticket!=0 && PositionGetInteger(POSITION_TYPE)== POSITION_TYPE_SELL && POSITION_PROFIT>=50) // 50 допустим...
{
m_trade.PositionClose(ticket);
i--;
invertStart = false;
return;
}
}
}
}
ulong ticket=ULONG_MAX;
double profit=DBL_MIN;
if(invertStart == true) // получил событие, о том что есть две позиции и одну можно закрыть.
{
int positions=PositionsTotal();
for(int i=PositionsTotal()-1; i>=0; i--)
{
ulong tmp_ticket=PositionGetTicket(i);
if(ticket!=0)
{
double tmp_profit=PositionGetDouble(POSITION_PROFIT);
if(tmp_profit>profit)
{
ticket=tmp_ticket;
profit=tmp_profit;
}
}
}
//---if(ticket!=ULONG_MAX)
m_trade.PositionClose(ticket);
}
nnc_arr_in 配列のサイズを構造体配列のセル 0 のサイズより 1 つ多くリサイズする。
ありがとうございます。
質問 mql5
2つのオープンポジションと シグナル(Flag==true)があります。
このシグナルによって決済されるべきポジションは1つだけ、つまり、より大きな利益を得たポジションだけです。
利益の 大きい方だけを 決済するには?
このイベントにはどのような対処が必要でしょうか?
私はこの方法でやろうとしています。
その結果、最後のオープンポジションがクローズされます。
正しいやり方をアドバイスしてください、例が欲しいです。 参考書や入門書を読みますが、微妙なところが分からないことがあります。
質問 mql5
2つのオープンポジションと シグナル(Flag==true)があります。
このシグナルによって決済されるべきポジションは1つだけ、つまり、より大きな利益を得たポジションだけです。
利益の 大きい方だけを 決済するには?
このイベントにはどのような対処が必要でしょうか?
私はこの方法でやろうとしています。
その結果、最後のオープンポジションがクローズされます。
参考文献は読んでいるのですが、細かいところがよくわからないことが多いので、正しいやり方を教えてください。
コード
コード
すでにそのようなローカル変数 があるため、チケットについてのみ不満があります。
ticket' の宣言でローカル変数が隠れる Lim_Stop_03_Sell_pos_06.mq5 299 10
このチケットの中には、中に隠す必要があるものもあるかもしれません。
どうもありがとうございます、動作しているようです。 ただ、すでにそのようなローカル 変数があるため、ticketについて文句を言われました。
ticket' の宣言でローカル変数が隠れる Lim_Stop_03_Sell_pos_06.mq5 299 10
このチケットの中には、中に隠す必要があるものもあるかもしれません。
変数名を変更する
в
そしてもちろん、コード内で名前を変更することを忘れないでください。
変数名を変更する
в
で、もちろん、コードの中で名前を変えることも忘れないでください。
はい、ありがとうございます。すでに整理しました...名前を変更しました。
ごきげんよう。
価格がトップラインより 上、またはボトムライン(水平または傾斜線、チャート上で移動可能)より下にある場合、メールまたはプッシュレターを送信するEAを見つけることができる場所を教えてください。
もしかしたら、どなたかが持っているかもしれませんので、教えてください。
MT5のみ
ありがとうございました。
EAでインジケータを接続すると
そして、CopyBuffer(ind_handle, 0, 1, 3, buffer1) を使って、インジケータバッファを取得します。
インジケータのバッファを 1ティックごとに読み込む必要があるのでしょうか?
また、できればソース(ドキュメント、記事)を教えてほしい。
1. インジケータは常に並列に計算されます。
2. CopyBuffer()を呼び出した時点のインジケータのみ計算される。
EAでインジケータを接続すると
そして、CopyBuffer(ind_handle, 0, 1, 3, buffer1) を使って、インジケータバッファを取得します。
インジケータのバッファを 1ティックごとに読み込む必要があるのでしょうか?
また、できればソース(ドキュメント、記事)を教えてほしい。
1. インジケータは常に並列に計算されます。
2. CopyBuffer()を呼び出した時点のインジケータのみ計算される。
ティック毎のインジケーターの計算について、どこかに情報があります。私の記憶では、デフォルトではインジケータにアクセスしたときのみ再計算されますが、毎ティックごとに再計算するようにすることも可能です。やり方は、ドキュメントを見てください。
Igorさん、インジケータが正しく書かれていれば、現在のバーの値だけを変更することができます。したがって、現在の値が必要な場合は、これらの新鮮な値を使用する直前にCopyBufferを使用する必要があります。また、ヒストリーバリューが必要な場合も、それは変わりませんし、読み直す理由もないのです。
ティック毎のインジケーターの計算について、どこかに情報があるはずです。私の記憶では、デフォルトではインジケータが呼び出されたときのみ再計算されますが、毎ティックごとに再計算させることも可能です。その方法はドキュメントに記載されています。
OK、ではとにかくテストしてみないと。
問題はインジケータの再描画 なので、まだインジケータを書き換えたくない