int i, j;
datetime t;
for (i=0; i<OrdersHistoryTotal(); i++) { // Цикл по закрытым ордерам терминалаif (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {// Если выбран ордер...if (OrderType()>1) continue; // ... если его тип не Buy и не Sell, переходим к следующему...if (OrderSymbol()!=Symbol()) continue; // ... если его символ не соответствует символу графика - к следующему...if (OrderMagicNumber()!=Magic) continue; // ... если его магик не соответствует магику советника (в переменной Magic) - к следующемуif (OrderCloseTime()>t) { // ... если время его закрытия больше предыдущего
t=OrderCloseTime(); // ... сохраним новое наибольшее время закрытия, ...
j=i; // ... сохраним индекс ордера в массиве закрытых ордеров
}
}
}
if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) // На этом этапе j содержит индекс последнего закрытого ордераPrint("Выбран последний закрытый ордер с тикетом ",OrderTicket());
実際に動かしてみると、「ステップ*ポイントが現在の損失よりも大きくなってから利益が出る」ので、利益が一定のマイナスになることがわかります・・・。ブローカーの仕事のため ...すでに利益が確認されているので、TPを置くために何も聞かなかった・・・・・・・・。
アイデアナンバー5 TS - オウンパターン ( サンプル ).そこには絵も描かれている。TSと取引基準はシンプルで
優秀なプログラマーであれば、それほど時間はかからないでしょう。誰も結果を見たいと思わないのか?
レバレッジ1倍でデモ口座を開設してみてください。そしてテストしてください。
うまくいくのか?
初心者プログラマーに、OrderSelect関数を使って最後に閉じた取引を選択する方法を教えていただけませんか?OrderSelect(1,SELECT_BY_POS,MODE_HISTORY) という方法でやってみたのですが、どうもこの方法では注文が選択されないようです...。
こちらもご覧ください: https://www.mql5.com/ru/forum/131859
-4ページ目
GetTypeLastClosePos - 最後に閉じたポジションの種類、または -1 を返す
GetTypeLastOpenPos - 最後にオープンしたポジションの種類、または -1 を返します。
isCloseLastPosByStop - Stopによってクローズされた最後のポジションのフラグを返します。
isCloseLastPosByTake - Takeによって最後のポジションをクローズするためのフラグを返します。
isLossLastPos - 最後の位置が失われたことを示すフラグを返します。
isTradeToDay - 今日の取引であることを示すフラグを返す
NumberOfBarCloseLastPos - 最後の位置の終値または-1を返します。
NumberOfBarOpenLastPos - 最後にオープンしたポジションのバー番号または-1を返します。
NumberOfLossPosToday - 今日決済された負けポジションの数を返します。
PriceCloseLastPos - 最後に決済したポジションの終値を返します。
初心者のプログラマーに、OrderSelect関数を使って最後に閉じた注文を選択する方法を教えてください。OrderSelect(1,SELECT_BY_POS,MODE_HISTORY) という方法でやってみたのですが、どうもこの方法では注文が選択されないようです...。
この方法で試してみてください。
なお、ループ内ではBuyまたはSellにのみチェックが入ります。うまくいけば、これをもとに他の注文の種類 を選択することができるようになります
ZS...手書きで書いていたので、どこかでミスがあったかもしれません...。
この機能が動作しない理由と動作させる方法を教えてください。
nomer_sdelki=OrderSend(Symbol(),OP_SELL,1,Bid,3,Bid-10*Point,Ask+10*Point,「私の注文番号」+1,16384,0,Green)。
------------------------------------------------------------------------------------------------------------------------
と、こんな感じです!!!
nomer_sdelki=OrderSend(Symbol(),OP_SELL,koefficent,Bid,3,0,0, "私の注文 #"+1,16384,0,Green) です。
つまり、ストップが設定されていない場合は動作します。
------------------------------------------------------------------------------------------------------------------------------
この機能も動作しないのですが、どうしたらいいですか?
OrderClose(nomer_sdelki,koefficent,Bid,3,Red)です。
-----------------------------------------------------------------------------------------------------------------------------------
レバレッジ1倍でデモ口座を開設してみてください。そしてテストしてください。
うまくいくのか?
奇跡だ...。
メッセージがあったのに、なかったことに...。
これが必要なのか、と答えます。