クローズドオーダーの利益計算 "HELP" - ページ 3 123456789 新しいコメント Renat Akhtyamov 2016.12.11 15:19 #21 Vitaly Muzichenko: 合わない、10年分の情報がない。あなたも同じでしょう。t変数が変化して、愕然としますよ。シリーズを閉じる前に暗記する必要があるcolor ProfitColor;datetime t;// START // //t=TimeCurrent();//разместить в блоке сигнала на закрытие серии ордеров if(LastProfitCL(-1)<0) ProfitColor=Red; if(LastProfitCL(-1)>0) ProfitColor=LimeGreen; if(LastProfitCL(-1)==0)ProfitColor=DarkGray; ObjectCreate("Last Profit", OBJ_LABEL, 0, 0, 0); ObjectSet("Last Profit", OBJPROP_CORNER, 1); ObjectSet("Last Profit", OBJPROP_XDISTANCE, 5); ObjectSet("Last Profit", OBJPROP_YDISTANCE, 15); ObjectSetText("Last Profit",StringConcatenate("Last Profit: ",DoubleToStr(LastProfitCL(-1),2)),10,"Arial",ProfitColor);// END START ////+----------------------------------------------------------------------------+//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |//+----------------------------------------------------------------------------+double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция) double LastProfit=0; for(i=OrdersHistoryTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) { if (OrderType()!= op || OrderSymbol()!= Symbol() || OrderMagicNumber()!= magic) continue; if (op<0 || OrderType()==op) { if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); } } return(LastProfit); } Profit calculation of closed コーディングの方法は? KimIVの便利な機能 Vitaly Muzichenko 2016.12.11 15:24 #22 Renat Akhtyamov:あなたも同じでしょう。t変数が変化して、愕然としますよ。シリーズが終了するまでに暗記しなければならない。試してみましたか? 閉じる前に、閉じるという信号の瞬間に記憶されるのです。 Alekseu Fedotov 2016.12.11 15:25 #23 Vitaly Muzichenko: 10年分の情報がないのは不向きだ。現在の利益、、、すべての履歴。ちなみに、任意の日時に設定することも可能です。 削除済み 2016.12.11 15:26 #24 Vitaly Muzichenko:トライComment( LastProfitCL(-1, 0) );//+----------------------------------------------------------------------------+//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |//+----------------------------------------------------------------------------+double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция) double LastProfit=0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic){ if(t<=OrderCloseTime()) { t=OrderCloseTime(); LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); }}}} return(LastProfit);}プロフィットは新しいものをすべて記憶していますが、その後、未知のものがカウントされます。画面#3では、190ではなく、4であるべきです。 Renat Akhtyamov 2016.12.11 15:28 #25 Vitaly Muzichenko:試して みましたか? 閉じる前に、閉じる信号を受信した瞬間に記憶している コードを読むだけでいい。 削除済み 2016.12.11 15:37 #26 それも、190if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); Vitaly Muzichenko 2016.12.11 15:39 #27 Natashe4ka:プロフィットは新しいものをすべて記憶していますが、その後、未知のものがカウントされます。画面#3では、190ではなく、4であるべきです。次のコードは、私の場合、正常に動作しますが、おそらくシリーズが正しく閉じられているためです。 ファイル: info.mq4 9 kb Renat Akhtyamov 2016.12.11 15:40 #28 Natashe4ka:だから、190もif(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();オーダーをクローズするコマンドはどこにあるのですか?そこに変数tを書き込んだのでしょうか?t=TimeCurrent();//разместить в блоке сигнала на закрытие серии ордеров 削除済み 2016.12.11 15:42 #29 Renat Akhtyamov:オーダーをクローズするコマンドはどこにあるのですか?そこに変数tを書き込んだか? t=TimeCurrent();//一連の注文を決済するためのシグナルブロックを配置する。もちろん全部ありますよ。if(t<=OrderCloseTime()) { t=OrderCloseTime();if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); Renat Akhtyamov 2016.12.11 15:48 #30 Natashe4ka:もちろん、全部ありますよ。if(t<=OrderCloseTime()) { t=OrderCloseTime();if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();いいえ、この行は削除されます。これが利益計算です、そううまくはいきません。 どこのコードで閉じるコマンド - そこに、しかし、そのような行ではない上記をお読みください。 123456789 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
合わない、10年分の情報がない。
あなたも同じでしょう。
t変数が変化して、愕然としますよ。
シリーズを閉じる前に暗記する必要がある
color ProfitColor;
datetime t;
// START //
//t=TimeCurrent();//разместить в блоке сигнала на закрытие серии ордеров
if(LastProfitCL(-1)<0) ProfitColor=Red;
if(LastProfitCL(-1)>0) ProfitColor=LimeGreen;
if(LastProfitCL(-1)==0)ProfitColor=DarkGray;
ObjectCreate("Last Profit", OBJ_LABEL, 0, 0, 0);
ObjectSet("Last Profit", OBJPROP_CORNER, 1);
ObjectSet("Last Profit", OBJPROP_XDISTANCE, 5);
ObjectSet("Last Profit", OBJPROP_YDISTANCE, 15);
ObjectSetText("Last Profit",StringConcatenate("Last Profit: ",DoubleToStr(LastProfitCL(-1),2)),10,"Arial",ProfitColor);
// END START //
//+----------------------------------------------------------------------------+
//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
for(i=OrdersHistoryTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderType()!= op || OrderSymbol()!= Symbol() || OrderMagicNumber()!= magic) continue;
if (op<0 || OrderType()==op)
{
if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
return(LastProfit);
}
あなたも同じでしょう。
t変数が変化して、愕然としますよ。
シリーズが終了するまでに暗記しなければならない。
試してみましたか?
閉じる前に、閉じるという信号の瞬間に記憶されるのです。
10年分の情報がないのは不向きだ。
現在の利益、、、すべての履歴。
ちなみに、任意の日時に設定することも可能です。
トライ
return(LastProfit);Comment( LastProfitCL(-1, 0) );
//+----------------------------------------------------------------------------+
//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic){
if(t<=OrderCloseTime()) {
t=OrderCloseTime();
LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}}}}
}
プロフィットは新しいものをすべて記憶していますが、その後、未知のものがカウントされます。画面#3では、190ではなく、4であるべきです。
試して みましたか?
閉じる前に、閉じる信号を受信した瞬間に記憶している
それも、190
プロフィットは新しいものをすべて記憶していますが、その後、未知のものがカウントされます。画面#3では、190ではなく、4であるべきです。
次のコードは、私の場合、正常に動作しますが、おそらくシリーズが正しく閉じられているためです。
だから、190も
オーダーをクローズするコマンドはどこにあるのですか?
そこに変数tを書き込んだのでしょうか?
オーダーをクローズするコマンドはどこにあるのですか?
そこに変数tを書き込んだか?
t=TimeCurrent();//一連の注文を決済するためのシグナルブロックを配置する。もちろん全部ありますよ。
t=OrderCloseTime();
if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
もちろん、全部ありますよ。
t=OrderCloseTime();
if(OrderCloseTime()>=t)LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
いいえ、この行は削除されます。これが利益計算です、そううまくはいきません。
どこのコードで閉じるコマンド - そこに、しかし、そのような行ではない
上記をお読みください。