//+----------------------------------------------------------------------------+// Прибыльно или убыточно закрылся последний ордер, и возврат типа такого ордераint fHistory(){
profit = 0; loss = 0;
for(int i=OrdersHistoryTotal(); i >= 0; i--){ // Выборка в историиif (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true){ // Если есть следующий в историиif(OrderMagicNumber()!=magN) continue; // Ордера не нашего эксперта
if(OrderProfit() > 0 ) profit = profit+OrderProfit(); // Если прибыль по посл.ордеру - суммируем if(OrderProfit() < 0 ) loss = loss + OrderProfit(); // Если убыток по посл.ордеру - суммируем
}
}
return(-1);
}
SLによるCLOSEDポジションの損失残高とOPENの利益トレードの合計残高を計算する関数をご存知の方、書き込みをお願いします。
損失残高の計算は、最後の最大入金額から開始する必要があります。
ご質問の内容が前回のものとやや似ているので、前回の回答の機能を少しいじってみました。正直なところ、私はテストしていませんが、うまくいくはずです。グローバルレベルで宣言される変数利益と損失は、クローズしたポジションの 合計利益と損失をそれぞれ表示する必要があります。
もし、未決済注文にもこの処理を行う必要がある場合は、履歴ではなく、OrdersTotal()の基準に従って注文を選択するための2番目のループを追加します: for(int n=1; n<=OrdersTotal(); n++)
そして、得られた値を同じ変数profitとlossに加えます。
例えば、保留中の買い指値が発動されたかどうか、発動された場合はどの価格で発動されたかを知り、新たに設定する必要があるのです。
トレーリングストップが発動されたことを確認し、トレーリングストップが発動されたときに新規注文を出すにはどうすればよいですか?
クローズドなら、クローズしたばかりでも必要なのでしょうか?それともStopLossで決済したのでしょうか?(TakeProfitとOrderClose()またはOrderCloseBy()で閉じる場合もある)
ここでは、新しいバーコントロール機能を紹介します。
ここで、i_trading_TF はグローバルに外部宣言された変数である。したがって、チャート上でExpert Advisorを設定する際に、この変数の値をポップアップウィンドウで設定することで、制御したいバーのオープニングのタイムフレームを設定することができるのです。
あるExpert Advisorで同様の機能を見たことがありますが、関数ヘッダに正式なパラメータが ありました。これです。
時間軸は関数パラメータで渡される。しかし、i_trading_TF 変数がグローバルレベルで宣言されている場合、その可視性は制限されないので、形式パラメータで渡すことは意味が ないと思います。
この点についてコメントをお願いします。
しかし、プログラマの中には、自分ではやらないような関数にまで正式なパラメータを詰め込む癖のある人がいるのは不思議なことです。
毎ティック、OrderType()関数でOP_BUYLIMITタイプの注文の有無を監視し、 このタイプが消えたら、OP_BUYタイプになった注文がオープン したことを意味します。全6種類を掲載して います。OrderOpenPrice()関数を使用すると、注文がどの価格で開始されたかを知ることができます。
ここでは、新しいバーコントロール機能を紹介します。
ここで、i_trading_TF はグローバルに外部宣言された変数である。したがって、チャート上でExpert Advisorを設定する際に、この変数の値をポップアップウィンドウで設定することで、制御したいバーのオープニングのタイムフレームを設定することができるのです。
あるExpert Advisorで同様の機能を見たことがありますが、関数ヘッダに正式なパラメータがありました。こんな感じです。
時間軸は関数パラメータで渡される。しかし、i_trading_TF 変数がグローバルレベルで宣言されている場合、その可視性は制限されないので、形式パラメータで渡すことは意味が ないと思います。
この点についてコメントをお願いします。
しかし、プログラマの中には、自分ではやらないような関数にまで正式なパラメータを詰め込む癖のある人がいるのは不思議なことです。
EAが複数のフレームを分析し、すべてのフレームで新しいバーが 形成されなければならない場合、これは理にかなっています。
それだけでなく、転送されたパラメータに楽器名を追加してみましょう。
と、どの時代のどの楽器にも新しいバーが形成されている事実を分析します。必ずしもそうではありません。また、手動で殺すことも可能です。むしろ、保留中の注文のチケットを覚えておく必要があります。そのチケットの保留中の注文が見つからず、同じチケットのマーケットポジションが現れるとすぐに、はい、トリガーされます...。
EAが複数のフレームを分析し、各フレームが新しいバーを形成するという事実を必要とする場合、これは理にかなっています。
それだけではありません。パラメータに楽器名を追加してみましょう。
と、新しいバーが形成された事実を分析する、任意のシンボル、期間。。
新しいバーを見つける仕組み」に記号を「巻き込む」ことが適切だと思いますか?:))
新しいバーの ユニバーサルコントロールを作ると面白いかもしれませんね。ところで-すべてはそのためにある
新しいバーのユニバーサルコントロールが出来たら面白いですね。ところで-すべてはそのためにある