MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1477 1...147014711472147314741475147614771478147914801481148214831484...1953 新しいコメント ANDREY 2021.05.20 19:49 #14761 MakarFX:それでも、すべてのティックに チェックが入るで、最小値の計算が狂ってしまい、2小節分ロールバックしてしまう。 私の最小限の計算では、写真のように被弾していました。しかし、その後、LoY1変数を追加したら、このエラーは出なくなりました。その結果、すべての注文は、私の最初のコードと同じ方法(時間、金額、価格)で、つまり私が必要とする方法で開かれます。私のコードは別の場所で失敗しました.でも、同じところで直しました。 double LoU,LoY1,Pr; int x; void OnTick() { if (Low[1]>Low[2]&&Time[2]>x&&Low[2]<LoY1) { LoU=Low[2]; LoY1=Low[2]; } //************************************************************** if (Bid-LoU>=0.0030&&Pr!=LoU) { OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0); Pr=LoU; LoU=Bid; LoY1=Bid; x=TimeCurrent(); } } また、成行注文ではなく、LoUから30ポイント単位で注文を出すことも可能です。 そうすれば、毎ティックBidを確認する必要はありません。しかし、保留中の注文の場合、LoUが 変わるたびに、古い保留中の注文を削除して新しい注文を設定するか、現在の保留中の注文を削除せずにパラメータを変更する必要が あります。そして、これらのことは、Bid tickごとにチェックするよりもはるかに少ない頻度で行う必要があります 。 私の場合、どのバリアントが一番コード実装の手間がかからないでしょうか? 1.ビッドが LoUから 30ポイント離れているかどうかを各ティックでチェックする 2.LoUを 変更するたびに、古い保留を削除し、新しい保留を設定して ください。 3.LoUを 変更するたびに、アクティブポーズのパラメータを変更する よろしく お願いします。 Taras Slobodyanik 2021.05.20 21:00 #14762 ANDREY:最小値の計算が、写真のように狂ってしまったのです。でも、LoY1という変数を入れたら、それが止まりました。 標準機能として、iLowest、iHighestが あります。 Tretyakov Rostyslav 2021.05.20 21:05 #14763 ANDREY:最小値の計算が、写真のように狂ってしまったのです。しかし、変数LoY1を追加したところ、この迷走が止まりました。その結果、すべての注文は、私のオリジナルのコードと同じ方法(時間、金額、価格)で開くようになりました(つまり、私が望む方法)。私のコードは別の場所で失敗しました.でも、同じところで直しました。また、成行注文ではなく、LoUから30ポイント単位で注文を出すことも可能です。 そうすれば、毎ティックBidを確認する必要はありません。しかし、保留中の注文の場合、LoUが 変わるたびに、古い保留中の注文を削除して新しい注文を設定するか、現在の保留中の注文を削除せずにパラメータを変更する必要が あります。そして、これらのことは、Bid tickごとにチェックするよりもはるかに少ない頻度で行う必要があります 。 私の場合、どのバリアントが一番コード実装の手間がかからないでしょうか?1.ビッドが LoUから 30ポイント離れているかどうかを各ティックでチェックする2.LoUを 変更するたびに、古い保留を削除し、新しい保留を設定して ください。3.LoUを 変更するごとに、アクティブポジションのパラメータを変更する 1) xはintではなくdatetimeである(将来的に便利になる)。 2) 初期コードに未決済注文が ない 3) これで、あなたのコードは各ティックでより多くの演算を行うようになりました。 メッセージの確認 Tretyakov Rostyslav 2021.05.20 21:19 #14764 Taras Slobodyanik:iLowestとiHighestの 標準的な関数があります。 適さない...時系列アイテムの数が一定 しない Taras Slobodyanik 2021.05.20 21:46 #14765 MakarFX: それはない...時系列の要素数は一定ではない えー...ハイ/ローがわからなくなるんですか? Tretyakov Rostyslav 2021.05.20 23:00 #14766 Taras Slobodyanik:えー...それでHigh/Lowが分からなくなるんですか? iLowest 関数とiHighest 関数は、ある一定数のバー(時系列要素の数)の中から検索することを意味 します。 この場合、数値は未知数であり、毎回変化します ANDREY 2021.05.21 03:45 #14767 MakarFX:1) xはintではなく、datetimeです(将来的に便利です)2) 初期コードに未決済注文が ない3) これで、あなたのコードは各ティックでより多くの演算を行うようになりました。メッセージを確認する これは私の古いコードです これは、古いコードと同じ期間の新しいコードです。 私にとって、1ティックあたりの演算数は、この数値に費やす時間よりもずっと重要なことなのです。しかも、新しいコードでは25%も時間が短縮されている......私の記憶違いでなければ、ですが。 ありがとうございました。 削除済み 2021.05.21 09:25 #14768 Aleksei Stepanenko: ここには、繊細さがあります。まずサイズを設定し、ゼロにリセットすることで固定を解除しますが、これではサイズは変わりません。 これ以外に方法はないのです。 ありがとうございました。 ANDREY 2021.05.21 09:50 #14769 MakarFX:それでも、すべてのティックに チェックが入るで、安値の計算が狂う...2小節分ロールバックする。 以下は、あなたの追加を除いた私のオリジナルのコードです。 以下、最新の改良点とともに もしかして、if(TimeSeconds(TimeCurrent())==0)は、注文が出されていない、次の最小値を探すセクションにのみ適用すべきなのでしょうか? もし私が間違っていなければ、あなたの関数のおかげで私のコードは各分ローソクの始めにのみ実行し始め、そのため注文を正しく開くことができません。 ありがとうございました。 Tretyakov Rostyslav 2021.05.21 10:15 #14770 ANDREY:以下は、あなたの追加を除いた私のオリジナルのコードです。以下は、あなたの最新の改良を加えたコードです。 もしかして、if(TimeSeconds(TimeCurrent())==0)は、注文が出されていない、次の安値を探すセクションにのみ適用すべきなのでは?もし私が間違っていなければ、あなたの関数は、各分ローソクの初めにのみ私のコードを実行するようになりました。ありがとうございました。 はい 1...147014711472147314741475147614771478147914801481148214831484...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
それでも、すべてのティックに チェックが入る
で、最小値の計算が狂ってしまい、2小節分ロールバックしてしまう。
私の最小限の計算では、写真のように被弾していました。しかし、その後、LoY1変数を追加したら、このエラーは出なくなりました。その結果、すべての注文は、私の最初のコードと同じ方法(時間、金額、価格)で、つまり私が必要とする方法で開かれます。私のコードは別の場所で失敗しました.でも、同じところで直しました。
また、成行注文ではなく、LoUから30ポイント単位で注文を出すことも可能です。 そうすれば、毎ティックBidを確認する必要はありません。しかし、保留中の注文の場合、LoUが 変わるたびに、古い保留中の注文を削除して新しい注文を設定するか、現在の保留中の注文を削除せずにパラメータを変更する必要が あります。そして、これらのことは、Bid tickごとにチェックするよりもはるかに少ない頻度で行う必要があります 。
私の場合、どのバリアントが一番コード実装の手間がかからないでしょうか?
1.ビッドが LoUから 30ポイント離れているかどうかを各ティックでチェックする
2.LoUを 変更するたびに、古い保留を削除し、新しい保留を設定して ください。
3.LoUを 変更するたびに、アクティブポーズのパラメータを変更する
よろしく お願いします。
最小値の計算が、写真のように狂ってしまったのです。でも、LoY1という変数を入れたら、それが止まりました。
標準機能として、iLowest、iHighestが あります。
最小値の計算が、写真のように狂ってしまったのです。しかし、変数LoY1を追加したところ、この迷走が止まりました。その結果、すべての注文は、私のオリジナルのコードと同じ方法(時間、金額、価格)で開くようになりました(つまり、私が望む方法)。私のコードは別の場所で失敗しました.でも、同じところで直しました。
また、成行注文ではなく、LoUから30ポイント単位で注文を出すことも可能です。 そうすれば、毎ティックBidを確認する必要はありません。しかし、保留中の注文の場合、LoUが 変わるたびに、古い保留中の注文を削除して新しい注文を設定するか、現在の保留中の注文を削除せずにパラメータを変更する必要が あります。そして、これらのことは、Bid tickごとにチェックするよりもはるかに少ない頻度で行う必要があります 。
私の場合、どのバリアントが一番コード実装の手間がかからないでしょうか?
1.ビッドが LoUから 30ポイント離れているかどうかを各ティックでチェックする
2.LoUを 変更するたびに、古い保留を削除し、新しい保留を設定して ください。
3.LoUを 変更するごとに、アクティブポジションのパラメータを変更する
1) xはintではなくdatetimeである(将来的に便利になる)。
2) 初期コードに未決済注文が ない
3) これで、あなたのコードは各ティックでより多くの演算を行うようになりました。
メッセージの確認
iLowestとiHighestの 標準的な関数があります。
それはない...時系列の要素数は一定ではない
えー...ハイ/ローがわからなくなるんですか?
えー...それでHigh/Lowが分からなくなるんですか?
iLowest 関数とiHighest 関数は、ある一定数のバー(時系列要素の数)の中から検索することを意味 します。
この場合、数値は未知数であり、毎回変化します
1) xはintではなく、datetimeです(将来的に便利です)
2) 初期コードに未決済注文が ない
3) これで、あなたのコードは各ティックでより多くの演算を行うようになりました。
メッセージを確認する
これは私の古いコードです
これは、古いコードと同じ期間の新しいコードです。
私にとって、1ティックあたりの演算数は、この数値に費やす時間よりもずっと重要なことなのです。しかも、新しいコードでは25%も時間が短縮されている......私の記憶違いでなければ、ですが。
ありがとうございました。
ここには、繊細さがあります。まずサイズを設定し、ゼロにリセットすることで固定を解除しますが、これではサイズは変わりません。 これ以外に方法はないのです。
それでも、すべてのティックに チェックが入る
で、安値の計算が狂う...2小節分ロールバックする。
以下は、あなたの追加を除いた私のオリジナルのコードです。

以下、最新の改良点とともに
もしかして、if(TimeSeconds(TimeCurrent())==0)は、注文が出されていない、次の最小値を探すセクションにのみ適用すべきなのでしょうか?
もし私が間違っていなければ、あなたの関数のおかげで私のコードは各分ローソクの始めにのみ実行し始め、そのため注文を正しく開くことができません。
ありがとうございました。
以下は、あなたの追加を除いた私のオリジナルのコードです。
以下は、あなたの最新の改良を加えたコードです。
もしかして、if(TimeSeconds(TimeCurrent())==0)は、注文が出されていない、次の安値を探すセクションにのみ適用すべきなのでは?
もし私が間違っていなければ、あなたの関数は、各分ローソクの初めにのみ私のコードを実行するようになりました。
ありがとうございました。