初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1055 1...104810491050105110521053105410551056105710581059106010611062...1503 新しいコメント Konstantin Nikitin 2019.06.04 17:46 #10541 Igor Makanu:というのはわかるのですが、2つの価格の差をポイント単位で計算するにはどうしたらよいのでしょうか?ここで四捨五入が適用されることがあります。どちらにするか、あるいは整数にしておくかは、あなた次第です。 int pips_profit = (int)MathFloor(OrderOpenPrice()-OrderClosePrice())/_Point); fxsaber 2019.06.04 17:47 #10542 Igor Makanu:これは正しいのか? オーダーループでは、OrderSymbol()が毎回異なるので、SymbolInfoDouble(OrderSymbol(),SYMBOL_POINT); が毎回再計算されるだろうか?そこでの問題は少し違っていて、すべてのシンボルの利益の合計をpipsで表示することです。 Igor Makanu 2019.06.04 17:50 #10543 Konstantin Nikitin:ここで四捨五入が適用されることがあります。どちらにするか、あるいは整数にしておくかは、あなた次第です。 そうそう、このような構造を忘れていたのですが、Kimのロット計算関数では、正しい丸めが行われていました。fxsaberつまり、そこでの作業は少し違っていて、すべてのシンボルの利益の合計をpipsで表示することです。しかし、なぜconstなのか、ループがconstを変更する場合、コンパイラはどのように動作するのでしょうか? PS: コードは読めるが、チェックが必要、これを使ったことがない fxsaber 2019.06.04 17:51 #10544 Igor Makanu:しかし、なぜ const なのでしょうか。ループ内で const が変更された場合、コンパイラはどのように動作するのでしょうか。 PS: コードは読めるが、チェックが必要、これを使ったことがない各ステップで変数が作成されます。 const - このステップでは、どこも変更する予定はありません。 Igor Makanu 2019.06.04 17:53 #10545 fxsaber:各ステップでは、変数が作成されます。 const - このステップでは、どこにも変更する予定はありません。は、ループの繰り返しなのか? このような構成がどのように動作するかはまだ明らかではないので、チェックするためのスクリプトが必要です。 Konstantin Nikitin 2019.06.04 17:58 #10546 fxsaber:つまり、すべてのシンボルにおける利益の合計をpipsで表すという、少し変わった目的を持っているのです。それなら、こうだ short pipsProfitOrder = (short)MathFloor( ( OrderProfit()+OrderSwap()+OrderCommission() ) / (SymbolInfoDouble(_OrderSymbol(), SYMBOL_TRADE_TICK_VALUE)*OrderLots()) ); 私は1ポジションのpipsで利益を計算していますが、自分に当てはめても問題ないと思っています。 fxsaber 2019.06.04 17:59 #10547 Igor Makanu:ステップとは、サイクルの繰り返しなのですか? はい。 このような構成がどのように動作するかはまだ不明なので、チェックするためのスクリプトが必要です。以下は、変数の寿命を便利に使う例です。 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム "トレーダー向けLifeHack: 定義にForEachを混ぜる(#define)" に関するディスカッション fxsaber さん 2018.02.14 10:54 パフォーマンス測定 #define BENCH(A) \ { \ const ulong StartTime = GetMicrosecondCount(); \ A; \ Print("Time[" + #A + "] = " + (string)(GetMicrosecondCount() - StartTime)); \ } double GetAsk() { static MqlTick tick = {0}; return(SymbolInfoTick(Symbol(),tick) ? tick.ask : 0); } #define AMOUNT 1 e6 void OnStart() { double Sum = 0; BENCH(for (int i = 0; i < AMOUNT; i++) Sum += GetAsk()) BENCH(for (int i = 0; i < AMOUNT; i++) Sum += SymbolInfoDouble(_Symbol, SYMBOL_ASK)) Print(Sum); } 結果 Time[for(inti=0;i<AMOUNT;i++)Sum+=GetAsk()] = 78952 Time[for(inti=0;i<AMOUNT;i++)Sum+=SymbolInfoDouble(_Symbol,SYMBOL_ASK)] = 162606 fxsaber 2019.06.04 18:03 #10548 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム 初心者からのFAQ MQL5 MT5 MetaTrader 5 コンスタンチン・ニキーチン, 2019.06.04 19:58 では short pipsProfitOrder = (short)MathFloor( ( OrderProfit()+OrderSwap()+OrderCommission() ) / (SymbolInfoDouble(_OrderSymbol(), SYMBOL_TRADE_TICK_VALUE)*OrderLots()) ); 1ポジションのpipsで利益を計算しているが、自分に当てはめても問題ないと思う。これをコスト込みの利益をTRUE(終値ではない)pipsに変換することを言います。 Konstantin Nikitin 2019.06.04 18:13 #10549 fxsaber: これをCURRENT(決算時ではない)ポイントへの原価利益振替といいます。こうして利益をポイントに換算していく必要があるのだ。閉じたものを計算するときは、やはりポイント値を基準にする必要があります。pips単位の利益は、始値と終値のpipsの差と同じである必要はありません。 と終値。 fxsaber 2019.06.04 18:17 #10550 Konstantin Nikitin:だから、彼は利益をポイントに変換する必要がある。 利益=OrderProfit()と考えることもあるようです。 クローズド・シンボルを計算する際にも、やはりピップ値を基準にする必要があります。利益のpip値は、始 値と終値の pip差と同じである必要はありません。 クローズ時のポイント数は計算時のポイント数と一致しません。また、計算時にそのシンボルがマーケットウォッチに掲載されていないだけかもしれません。 そのため、ポイントの値と決算時の値の両方が計算されます。 1...104810491050105110521053105410551056105710581059106010611062...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
というのはわかるのですが、2つの価格の差をポイント単位で計算するにはどうしたらよいのでしょうか?
ここで四捨五入が適用されることがあります。どちらにするか、あるいは整数にしておくかは、あなた次第です。
これは正しいのか? オーダーループでは、OrderSymbol()が毎回異なるので、SymbolInfoDouble(OrderSymbol(),SYMBOL_POINT); が毎回再計算されるだろうか?
そこでの問題は少し違っていて、すべてのシンボルの利益の合計をpipsで表示することです。
ここで四捨五入が適用されることがあります。どちらにするか、あるいは整数にしておくかは、あなた次第です。
そうそう、このような構造を忘れていたのですが、Kimのロット計算関数では、正しい丸めが行われていました。つまり、そこでの作業は少し違っていて、すべてのシンボルの利益の合計をpipsで表示することです。
しかし、なぜconstなのか、ループがconstを変更する場合、コンパイラはどのように動作するのでしょうか?
PS: コードは読めるが、チェックが必要、これを使ったことがない
しかし、なぜ const なのでしょうか。ループ内で const が変更された場合、コンパイラはどのように動作するのでしょうか。
PS: コードは読めるが、チェックが必要、これを使ったことがない
各ステップで変数が作成されます。 const - このステップでは、どこも変更する予定はありません。
各ステップでは、変数が作成されます。 const - このステップでは、どこにも変更する予定はありません。
は、ループの繰り返しなのか?
このような構成がどのように動作するかはまだ明らかではないので、チェックするためのスクリプトが必要です。
つまり、すべてのシンボルにおける利益の合計をpipsで表すという、少し変わった目的を持っているのです。
それなら、こうだ
私は1ポジションのpipsで利益を計算していますが、自分に当てはめても問題ないと思っています。
ステップとは、サイクルの繰り返しなのですか?
はい。
このような構成がどのように動作するかはまだ不明なので、チェックするためのスクリプトが必要です。
以下は、変数の寿命を便利に使う例です。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
"トレーダー向けLifeHack: 定義にForEachを混ぜる(#define)" に関するディスカッション
fxsaber さん 2018.02.14 10:54
パフォーマンス測定
結果
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
初心者からのFAQ MQL5 MT5 MetaTrader 5
コンスタンチン・ニキーチン, 2019.06.04 19:58
では
1ポジションのpipsで利益を計算しているが、自分に当てはめても問題ないと思う。
これをコスト込みの利益をTRUE(終値ではない)pipsに変換することを言います。
これをCURRENT(決算時ではない)ポイントへの原価利益振替といいます。
こうして利益をポイントに換算していく必要があるのだ。閉じたものを計算するときは、やはりポイント値を基準にする必要があります。pips単位の利益は、始値と終値のpipsの差と同じである必要はありません。 と終値。
だから、彼は利益をポイントに変換する必要がある。
利益=OrderProfit()と考えることもあるようです。
クローズド・シンボルを計算する際にも、やはりピップ値を基準にする必要があります。利益のpip値は、始 値と終値の pip差と同じである必要はありません。
クローズ時のポイント数は計算時のポイント数と一致しません。また、計算時にそのシンボルがマーケットウォッチに掲載されていないだけかもしれません。
そのため、ポイントの値と決算時の値の両方が計算されます。