ライブラリ: BestInterval - ページ 23 1...1617181920212223242526272829 新しいコメント fxsaber 2019.12.11 12:48 #221 fxsaber:今までやったのはこれだけだ。あとはロットで修正する必要はない。しかし、他の(古い)ものに関連するエラーがある。修正する必要がある。 更新しました。BestIntervalモードでは、このオプションを使用することをお勧めします。 取引、自動取引システム、取引戦略のテストに関するフォーラムライブラリ: バーチャルfxsaber, 2019.12.11 12:15 pm. 開発者がシンボル初期価格の正常化の状況を いつ修正するのか、また、まったく修正しないのかについては、何とも言えません。そのため、このモードが導入されました。 //https://www.mql5.com/ru/forum/321656/page34#comment_14192799 #define TICKS_FORCE_NORMALIZE // 入力されるティック価格の強制的な正規化 traveller00 2019.12.20 22:12 #222 予想外の動作だ。 Action=falseで一度実行すれば、パス結果をファイルに保存し、後で適用できるようだ。しかし、予想外なのは、トータル、RF、DDなどのすべてのパラメーターも保存されることだ。言い換えれば、同じシンボルの別のインターバルや別のシンボルなどでAction=trueで実行すると、取引に最適な時間が適用されるだけでなく、ログに古い値が記録されます。 fxsaber 2019.12.21 00:23 #223 traveller00:その後、同じシンボルや別のシンボルなどの別の間隔でAction=trueで実行すると、取引に最適な時間が適用されるだけでなく、ログに古い値が記録される。 真の実行の値は表示されず、適用された偽の実行のデータが表示されます。シンボルやインターバルなどを変更しても、表示される値は変わりません。表示される値は、エントリーが行われた時点のものである。これは意図的に行われている。 traveller00 2020.01.22 18:27 #224 念のため、アーキテクチャの観点からStopLossと正しく機能しないことを指摘しておきます。理論的には、action=falseでトリガーされたStopLossは、BestIntervalが捨てると決めた範囲に入る可能性があります。その結果、action=trueのときにずれることになり、action=falseのときに予測された数値と大きく異なる結果になることがあります。 fxsaber 2020.01.22 18:43 #225 traveller00: 念のため、アーキテクチャの観点からStopLossと正しく機能しないことを指摘しておきます。理論的には、action=falseでトリガーされたStopLossは、BestIntervalが捨てると決めた範囲に入るかもしれません。その結果、action=trueでシフトし、結果の数値がaction=falseで予測された数値と大きく異なることがあります。 何か誤解されているようですね。理論的にも問題はないはずです。 traveller00 2020.01.23 17:21 #226 はい、問題はVirtualに含まれ、BestIntervalを使用するSyncがStopLossとTakeProfitを無視することにあるようです。問題はアーキテクチャーではなく、私がそれを理解しきれていないことです。 fxsaber 2020.01.23 17:54 #227 traveller00: はい、問題はVirtualに含まれ、BestIntervalを使用するSyncがStopLossとTakeProfitを無視することにあるようです。問題はアーキテクチャの問題ではなく、私がそれを理解しきれていないことです。 私はリミッターとテイカーを通してTCを書いているので、問題を再現する原始的な例を示すのが良いだろう。 traveller00 2020.01.23 18:20 #228 BestInterval.mqhでactive=trueの時、voidOnTick( void ) があり、その中にSYNC::Positions<BEST_TIME>(); があり、これはSync.mqh にはstaticvoid Positions( constint Handle = 0, constbool Reverse = false ) があります。内部では、ロットが再計算され、必要な間隔に収まっていれば、SYNC::NewOrderSend(_Symbol, Type, ::MathAbs(AddLots), Price, 100, 0, 0, 0); を介して仮想環境から実環境に転送されます。 価格がポジションから取得されるのではなく、その場で読み込まれるのは少し奇妙ですが、問題ありません。見ての通り、StopLossとTakeProfitはゼロで渡されています。おそらく、BESTINTERVAL_LIMITSYNC_NETTING オプションを使用していて、TakeProfitが考慮されているのでしょう。 Libraries: BestInterval エラー、バグ、質問 EA ERROR: "Failed prices fxsaber 2020.01.23 18:30 #229 traveller00: BestInterval.mqhでactive=trueの場合、voidOnTick( void ) があり、その中にSYNC::Positions<BEST_TIME>(); があり、Sync.mqh にはstaticvoid Positions( constint Handle = 0, constbool Reverse = false ) があります。内部では、ロットが再計算され、必要な間隔に収まっていれば、SYNC::NewOrderSend(_Symbol, Type, ::MathAbs(AddLots), Price, 100, 0, 0, 0); を介して仮想環境から実環境に転送されます。 価格がポジションから取得されるのではなく、その場で読み取られるのは少し奇妙ですが、まあいいでしょう。見ての通り、StopLossとTakeProfitはゼロで渡されています。おそらく、BESTINTERVAL_LIMITSYNC_NETTING オプションを使用していて、TakeProfitが考慮されているのでしょう。 はい、私はこのモードを使っています。普遍的な解決策を考えても、すべてが無駄になってしまうからです。 少しいじれば、クローズド・ソース・コード(Marketなど)のExpert Advisorのシングル・パスにBestInterval-trueを使うことができます。 それでも、BestIntervalの主な機能は最適化モードで 動作することです。Trueは良い機能ですが、必須ではありません。 Enrique Dangeroux 2020.02.07 18:45 #230 int FromFile( const string FileName = __FILE__, const int CommonFlag = 0 ) { const bool Res = (::FileLoad(FileName, this.Intervals, CommonFlag) > 0) && (this.IsCalculated = true); if (Res) { this.AmountDeleteIntervals = ::ArraySize(this.Intervals) - (this.Intervals[0].OpenTime ? 0 : 1); this.FullInterval.Calculate(this.Intervals); } else ::Print("ERROR: Can not load the File " + FileName + "!"); return(Res); } int=>boolに変更しました。あるいは、代わりにAmountDeleteIntervalsを返すように提案してもよい。 1...1617181920212223242526272829 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
今までやったのはこれだけだ。
あとはロットで修正する必要はない。しかし、他の(古い)ものに関連するエラーがある。修正する必要がある。
更新しました。BestIntervalモードでは、このオプションを使用することをお勧めします。
取引、自動取引システム、取引戦略のテストに関するフォーラム
ライブラリ: バーチャル
fxsaber, 2019.12.11 12:15 pm.
開発者がシンボル初期価格の正常化の状況を いつ修正するのか、また、まったく修正しないのかについては、何とも言えません。そのため、このモードが導入されました。予想外の動作だ。
Action=falseで一度実行すれば、パス結果をファイルに保存し、後で適用できるようだ。しかし、予想外なのは、トータル、RF、DDなどのすべてのパラメーターも保存されることだ。言い換えれば、同じシンボルの別のインターバルや別のシンボルなどでAction=trueで実行すると、取引に最適な時間が適用されるだけでなく、ログに古い値が記録されます。
その後、同じシンボルや別のシンボルなどの別の間隔でAction=trueで実行すると、取引に最適な時間が適用されるだけでなく、ログに古い値が記録される。
真の実行の値は表示されず、適用された偽の実行のデータが表示されます。シンボルやインターバルなどを変更しても、表示される値は変わりません。表示される値は、エントリーが行われた時点のものである。これは意図的に行われている。
念のため、アーキテクチャの観点からStopLossと正しく機能しないことを指摘しておきます。理論的には、action=falseでトリガーされたStopLossは、BestIntervalが捨てると決めた範囲に入るかもしれません。その結果、action=trueでシフトし、結果の数値がaction=falseで予測された数値と大きく異なることがあります。
何か誤解されているようですね。理論的にも問題はないはずです。
はい、問題はVirtualに含まれ、BestIntervalを使用するSyncがStopLossとTakeProfitを無視することにあるようです。問題はアーキテクチャの問題ではなく、私がそれを理解しきれていないことです。
私はリミッターとテイカーを通してTCを書いているので、問題を再現する原始的な例を示すのが良いだろう。
BestInterval.mqhでactive=trueの場合、voidOnTick( void ) があり、その中にSYNC::Positions<BEST_TIME>(); があり、Sync.mqh にはstaticvoid Positions( constint Handle = 0, constbool Reverse = false ) があります。内部では、ロットが再計算され、必要な間隔に収まっていれば、SYNC::NewOrderSend(_Symbol, Type, ::MathAbs(AddLots), Price, 100, 0, 0, 0); を介して仮想環境から実環境に転送されます。 価格がポジションから取得されるのではなく、その場で読み取られるのは少し奇妙ですが、まあいいでしょう。見ての通り、StopLossとTakeProfitはゼロで渡されています。おそらく、BESTINTERVAL_LIMITSYNC_NETTING オプションを使用していて、TakeProfitが考慮されているのでしょう。
はい、私はこのモードを使っています。普遍的な解決策を考えても、すべてが無駄になってしまうからです。
少しいじれば、クローズド・ソース・コード(Marketなど)のExpert Advisorのシングル・パスにBestInterval-trueを使うことができます。
それでも、BestIntervalの主な機能は最適化モードで 動作することです。Trueは良い機能ですが、必須ではありません。