double GetProfitLastClosePos (string sy="", int op=-1, int mn=-1,
int j=0) // Искомый (по номеру) ордер от последнего закрытого
{
int k = OrdersHistoryTotal(), li_cnt = 0;
//----if (sy == "0" || sy == "") sy = Symbol();
for (int i = k - 1; i >= 0; i--)
{
if (!OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) continue;
if (OrderSymbol() != sy) continue;
if (OrderType() > 1) continue;
if (op >= 0) if (OrderType() != op) continue;
if (mn >= 0) if (OrderMagicNumber() != mn) continue;
if (j == li_cnt) return (OrderProfit());
li_cnt++;
}
//----return (-1.0);
}
こんにちは!
ライブラリを接続すると、なぜかextern演算子が効かなくなる、つまり変数が定義され、すべて正常にコンパイルされ、原理的にはEAが動作するのですが、同時に、パラメータがかなり多いにもかかわらず、型起動時にパラメータがない状態になってしまいます。その理由は何でしょうか。
コード内を検索
#property library
そして削除。
この関数に、最後から2番目のトランザクションのための変数jを追加しました。
double GetProfitLastClosePos(string sy="", int op=-1, int mn=-1, int j=0) {。この関数にペナルトレード用の変数jを追加しています。
クローズされたオーダーは、クローズされた時間に従ってOrdersHistoryTotal()で右→左(最後のものが右)に考慮されると考えます。
この関数は, シンボル, マジック, タイプによって「フィルタリング」された直近のクローズドオーダーの利益 j 番目を返す.また、数字は0番目から数えます。
クローズしたオーダーはOrdersHistoryTotal()で右→左(最新の極右)とクローズした時間順にカウントされることを考慮すると、クローズしたオーダーはOrdersHistoryTotal()で右→左(最新の極右)とカウントされる。
この関数は、商品、Magik、タイプによって「フィルタリング」された、最後のクローズドオーダーの利益j番目のものを返します。また、数字は0番目から数えます。
皆さん、こんにちは。
同ロットの買い注文と売り注文を、利益が+になった時点でカウンターオーダーで決済する機能が必要です。この機能を実行しようとすると、4108エラーが出る(チケットが違う)
何が問題なのか、教えてください。
注文は、チェックの全サイクルが終了した時点で、つまりfor文の内部ではなく、その後に終了させる必要があります。
ありがとうございました。もし、このような機能を必要とする人がいれば、このような形になるでしょう。
この言語に関するビデオチュートリアルはありますか?