チェック - 何がいけなかったのか? - ページ 2 1234567 新しいコメント Natalya Smirnova 2021.12.21 13:23 #11 Natalya Smirnova #:私はバイナリーオプションのために書いているので、少し違ったやり方をしています。 これはおそらく正しいでしょう? 以下、問題点 1つの注文に対して、ターミナルに2つの行があります。 また、Expert Advisorで発注された注文は、Profit == 0となります。 Renat Akhtyamov 2021.12.21 13:26 #12 Natalya Smirnova #:これが問題だと思います 1つの注文に対してターミナルに2行あります。そして、Expert Advisorが発注した注文では、Profit == 0となります。 ゼロ以下の価格をどこで見つけたのか - スクリーンショットを見せるにはどうすればいいのか? このスクリーンショットでは見えません Nikolai Semko 2021.12.21 13:40 #13 Alexey Viktorov #:アルゴリズム全体のアドバイスは既にされていますし、私は口出ししたくありませんし、あなたのコードも見ていませんし、同じアドバイスでも・・・しかし、このが目に留まりました。そこで質問ですが、switch演算子を使う方が簡単で見やすいのでは? 読みやすく、わかりやすくなったと思います。もしかしたら、動作も少し速くなるかもしれません。 関数の代わりに配列volume[n]を使うとか?とはいえ、コードの一行一行にお金を払うのであれば、そのままにしておいたほうがいいのですが :)) Alexey Viktorov 2021.12.21 14:17 #14 Nikolai Semko #: 関数の代わりに配列のvolume[n]を使えばいいのでは? コードの一行一行にお金を払うのであれば、その方が良いのですが :)) そうかもしれませんね・・・私もそう思います。 Natalya Smirnova 2021.12.21 14:58 #15 Renat Akhtyamov #:どこで0円以下になったのか、スクリーンショットを見せてください。このスクリーンショットには、そのようなものはありません。 OrderProfit()を取得しようとしているのですが、0が表示されます。その追加ラインから出たところで、利益-0.01を確認したのがこちらです。 Natalya Smirnova 2021.12.21 15:02 #16 Alexey Viktorov #:そうかもしれませんね・・・私もそう思います。 お金をもらわないのは、自分のため、自己啓発のためです。仕事帰りに、グレイルクエストをするのも面白いです Renat Akhtyamov 2021.12.21 15:25 #17 ネガティヴな価格は、やはりないですね。 というように、利益の合計を数える(抜粋)。 必要なものが強調されている for(i=0;i<OrdersHistoryTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if(OrderType()==ORDER_TYPE_BALANCE && OrderCloseTime()>startDate)Withdrawal=Withdrawal+OrderProfit()+OrderCommission()+OrderSwap(); if((OrderType()==ORDER_TYPE_BUY || OrderType()==ORDER_TYPE_SELL)) { if(OrderCloseTime()>iTime(Symbol(),PERIOD_D1,0))hystCurrDay=hystCurrDay+OrderProfit()+OrderCommission()+OrderSwap(); if(OrderCloseTime()<iTime(Symbol(),PERIOD_D1,0) && OrderCloseTime()>iTime(Symbol(),PERIOD_D1,1))hystPrevDay=hystPrevDay+OrderProfit()+OrderCommission()+OrderSwap(); } } } Check - what have MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 クローズドオーダーの利益計算 "HELP" Alexey Viktorov 2021.12.21 15:57 #18 Natalya Smirnova #: お金をもらわないのは、自分のため、自己啓発のためです。仕事帰りに、グレイルサーチをするのも面白いです 私のことは気にしないでください。私とニコライの二人だけでちょっと集まって...。 問題の本質:FXブローカーのOrderProfit()は実際の値を示さないので、注文の終値と建値の差として正負の決済注文を定義する必要があります。すでにお伝えしていることですが トレーディング、自動売買システム、ストラテジーテストに関するフォーラム何がいけなかったのか、確認する。レナト・アフティアモフ, 2021.12.21 09:27りがいかんせんなんでやねんbool profit = false; if(OrderClosePrice() > 0) profit = true; bool loss = false; if(OrderClosePrice() < 0) loss = true; 注文の終値が 0より小さくなる可能性があるのはなぜですか?終値が始値より高い場合、買い注文はプラスになります。買い付け時のプラスの条件(手数料、スワップは除く)はこちら。OrderClosePrice() > OrderOpenPrice() 逆であればマイナス Nikolai Semko 2021.12.21 16:56 #19 Natalya Smirnova #: 自分自身や自己啓発のために、それほど多くのお金をもらっているわけではありません。仕事が終わってから、グレイルクエストに行くのも楽しいですよ。 そうです、ナタリアさん。あれは「コード1行でお金をもらうとき」シリーズのミームだったんです。 プログラマーには、そういうユーモアがあるんです。 あなたの場合、ファンクションは必要ありません。 double SelectVolume(int n) 変数 Volume1 ... を作成するだけです。Volume10 変数は、最初は配列 volume[10] として形成し、その要素 volume[n] をインデックス n で参照します。 心配しないでください。ほとんどすべてのプログラマが経験していることなのです。 要は、プログラミングが本当に好きかどうかということです。感じることができます。 そうすれば、遠くまで行けるでしょう。 Renat Akhtyamov 2021.12.21 17:14 #20 私もそう思います。プログラミングは本当に胡散臭いし、とても長期的なものだ!!!誰もが万歳で終わるわけではない...。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私はバイナリーオプションのために書いているので、少し違ったやり方をしています。
これはおそらく正しいでしょう?
以下、問題点
1つの注文に対して、ターミナルに2つの行があります。
また、Expert Advisorで発注された注文は、Profit == 0となります。
これが問題だと思います
1つの注文に対してターミナルに2行あります。
そして、Expert Advisorが発注した注文では、Profit == 0となります。
ゼロ以下の価格をどこで見つけたのか - スクリーンショットを見せるにはどうすればいいのか?
このスクリーンショットでは見えません
アルゴリズム全体のアドバイスは既にされていますし、私は口出ししたくありませんし、あなたのコードも見ていませんし、同じアドバイスでも・・・しかし、この
が目に留まりました。そこで質問ですが、switch演算子を使う方が簡単で見やすいのでは?
読みやすく、わかりやすくなったと思います。もしかしたら、動作も少し速くなるかもしれません。関数の代わりに配列のvolume[n]を使えばいいのでは?
そうかもしれませんね・・・私もそう思います。
どこで0円以下になったのか、スクリーンショットを見せてください。
このスクリーンショットには、そのようなものはありません。
OrderProfit()を取得しようとしているのですが、0が表示されます。
その追加ラインから出たところで、利益-0.01を確認したのがこちらです。

そうかもしれませんね・・・私もそう思います。
ネガティヴな価格は、やはりないですね。
というように、利益の合計を数える(抜粋)。
必要なものが強調されている
for(i=0;i<OrdersHistoryTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderType()==ORDER_TYPE_BALANCE && OrderCloseTime()>startDate)Withdrawal=Withdrawal+OrderProfit()+OrderCommission()+OrderSwap();
if((OrderType()==ORDER_TYPE_BUY || OrderType()==ORDER_TYPE_SELL))
{
if(OrderCloseTime()>iTime(Symbol(),PERIOD_D1,0))hystCurrDay=hystCurrDay+OrderProfit()+OrderCommission()+OrderSwap();
if(OrderCloseTime()<iTime(Symbol(),PERIOD_D1,0) && OrderCloseTime()>iTime(Symbol(),PERIOD_D1,1))hystPrevDay=hystPrevDay+OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
お金をもらわないのは、自分のため、自己啓発のためです。仕事帰りに、グレイルサーチをするのも面白いです
私のことは気にしないでください。私とニコライの二人だけでちょっと集まって...。
問題の本質:FXブローカーのOrderProfit()は実際の値を示さないので、注文の終値と建値の差として正負の決済注文を定義する必要があります。すでにお伝えしていることですが
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
何がいけなかったのか、確認する。
レナト・アフティアモフ, 2021.12.21 09:27
りがいかんせん
なんでやねん
注文の終値が 0より小さくなる可能性があるのはなぜですか?
終値が始値より高い場合、買い注文はプラスになります。
買い付け時のプラスの条件(手数料、スワップは除く)はこちら。
逆であればマイナス自分自身や自己啓発のために、それほど多くのお金をもらっているわけではありません。仕事が終わってから、グレイルクエストに行くのも楽しいですよ。
そうです、ナタリアさん。あれは「コード1行でお金をもらうとき」シリーズのミームだったんです。
プログラマーには、そういうユーモアがあるんです。

あなたの場合、ファンクションは必要ありません。
変数 Volume1 ... を作成するだけです。Volume10 変数は、最初は配列 volume[10]
として形成し、その要素 volume[n] をインデックス n で参照します。
心配しないでください。ほとんどすべてのプログラマが経験していることなのです。
要は、プログラミングが本当に好きかどうかということです。感じることができます。
そうすれば、遠くまで行けるでしょう。