MT4-テスター VS MT5-テスター - ページ 3 1234567891011 新しいコメント Renat Fatkhullin 2017.05.08 09:37 #21 fxsaber: プルーフこれは証拠にはならない。あなたは勘違いしています。 この専門家は、取引履歴への アクセスをテストしているに過ぎないのです。 fxsaber 2017.05.08 09:47 #22 Renat Fatkhullin:これは証拠にはならない。あなたは勘違いしています。 あなたの間違いは何ですか?ヒストリー機能があるところにはBreakPointsを置いて、CTRL+F5を実行してデバッグすることも自分で確認しました。すべてきれいに仕上がりました。Renat Fatkhullin: 私の主張は変わらない - 当該専門家は、取引履歴への アクセスのみをテストしている。結論を急ぎすぎた。 Georgiy Merts 2017.05.08 10:01 #23 クラウドコンピューティングは、MT4テスターのスピードの利点をすべて否定するものだからです。 それに、この場合、確かにEAはデータアクセスの速度だけをテストしています。しかし、これはほとんどのEAにとってボトルネックになるとは思えません。MT5でヘッジポジションを持つ口座が導入された後、個人的にはMT4の良さが全く感じられなくなりました。私がクロスプラットフォームライブラリを使うのは、実際の口座でMT4を使っているからに他なりません。 個人的に唯一惜しいのは、ポインタや配列の参照です。インジケータでデータをコピーする必要はなぜかないんです。MQL5には、それ以外のすべてが備わっています。 Распределенные вычисления в сети MQL5 Cloud Network cloud.mql5.com Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network Georgiy Merts 2017.05.08 10:02 #24 fxsaber: 結論に飛びつきましたね。 他に何があるのでしょうか?データを照会して、ファイルにダンプする。他のアクションはありません。このEAは何をテストしているのでしょうか? fxsaber 2017.05.08 10:04 #25 fxsaber:ZS すべてのランが完璧にマッチしているわけではありません。つまり、3つのうちどれかが嘘をついているのは間違いない(MT4+TDS、MT5、MT4Orders)。探してみるしかないでしょう。サブのおかげで犯人が判明、比較する機会があると必ずそうなる。Expert Advisorでバグが表示される// MQL4&5-code #property strict #ifdef __MQL5__ #define Bid (SymbolInfoDouble(_Symbol, SYMBOL_BID)) #define Ask (SymbolInfoDouble(_Symbol, SYMBOL_ASK)) #endif // __MQL5__ #define PRINT(A) Print(#A + " = " + (string)(A)); void OnTick() { static bool FirstRun = true; static const double PrevBid = Bid; static const double PrevAsk = Ask; if (FirstRun) { PRINT((PrevBid != Bid) || (PrevAsk != Ask)) FirstRun = false; } }エムティーフォー2017.05.08 10:57:33.056 2017.04.10 00:00:08 TDS_Test EURUSD,M1: (PrevBid!=Bid)||(PrevAsk!=Ask) = falseMT52017.05.08 11:01:31.266 2017.04.10 00:00:08 (PrevBid!=Bid)||(PrevAsk!=Ask) = true fxsaber 2017.05.08 10:09 #26 George Merts: 他に何があるのでしょうか?データの要求とファイルへの保存を行います。他の操作は行っていません。このEAは何をテストしているのでしょうか? そのような疑問は、議論を全部読んでからにしたほうがいい。ジョージ・マーツMT5でヘッジポジションを持つ口座が導入された後、個人的にはMT4の利点は一つもないと思っています。このスレッドは建設的な内容が集中しているため、やや目立ちます。だから個人の好みはここで 議論したほうがいい、たとえば。 Renat Fatkhullin 2017.05.08 10:41 #27 fxsaber: どこにエラーがあるのか?自分でも確認し、History関数があるところにはBreakPointsを置き、CTRL+F5でデバッグを実行しました。すべてきれいに仕上がりました。結論に飛びつきましたね。すべてにおいて。履歴を使った作業が本格化、履歴をスキャンしてトレード終了MT4Orders.mqhを使う - これは純粋な実験の終わりです。オーバーヘッドを持つ巨大なライブラリは、うんざりするほど書かれていて読めない。for(i=200 000; i>=0; i--)刻み目 ごとにOrderSelectと書くのは狂気の沙汰としか言いようがなく、「日本女とロシア男」というジョークを繰り返そうとするものです。 for(int i=OrdersTotal()-1; i>=0; i--) if(OrderSelect(i,SELECT_BY_POS) && ((!TradeTime) || (OrderProfit()>0) || ((OrderType() == OP_BUY) && (PriceToInteger(OrderOpenPrice()) - IntBid >= Limit)) || ((OrderType() == OP_SELL) && (IntAsk - PriceToInteger(OrderOpenPrice()) >= Limit)))) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0); テストはすべて、3からのサイクルのためだけに書かれたものです。 5日間で20万件の取引が開始されるテストでは、おおよそ18万回刻みで行われます。900 000ティックに単純化してみましょう。100 000の注文が履歴でスキャンされ、900 000 * 100 000 = 900 000 000 000 OrderSelectの呼び出しがあります(ライブラリからのオーバーフローを含む)。テストされるのは、まさに9000億回のOrderSelectの呼び出しです。 そして、そのうちの99.99%は、「遅れ」を実証するためだけに行われた、まったく不要な通話です。 もし、クリーンなテストを行いたいのであれば、ライブラリなしで2つの同じクリーンなサンプルを書いてください。これにより、互換性のために組み込まれたオーバーヘッドがなく、クリーンであることが保証されます。履歴へのアクセスを最適化し、このデモを完全に無効化しました。わざとそういう書き方をしたんです。 fxsaber 2017.05.08 11:16 #28 Renat Fatkhullin:すべてにおいて。ヒストリーワークが本格化、ヒストリースキャン後にトレードを終了 どこ?MT4Orders.mqh を使うことは、純粋な実験に終止符を打つことです。 これは、オーバーヘッドが嫌らしく、読めない方法で書かれた恐ろしいライブラリです。 それが私でした。for(i=200 000; i>=0; i--)刻み目 ごとにOrderSelectと書くのは狂気の沙汰としか言いようがなく、「日本女とロシア男」というジョークを繰り返そうとするものです。 MQL4のことを完全に忘れていますね。ここには歴史への言及はない。テストはすべて、3からのループのためだけに書かれたものです。 99.99%のチャレンジは全く不要で、純粋に「ブレーキ」を実証するために作られたものです。 この例はでっち上げではなく、ソースにオリジナルへのリンク があります。これは最も有名で最も古いスキャルパーの一つです。もし、クリーンなテストを行いたいのであれば、ライブラリなしで2つの同じクリーンなサンプルを書いてください。こうすることで、クリーンさが保証され、互換性のために組み込まれたオーバーヘッドが発生しないようになります。2つのテスターを比較できるようにしたい。それぞれの長所と短所をご覧ください。また、比較はバグを特定する最も有効な方法の一つです。スレッドは、両テスターの生データの同一性を示すことから始まる。これが基本であり、これがなければ何もできないのです。そして、全員がテスト用のExpert Advisorを選択することができます。履歴へのアクセスを最適化し、このデモを完全に否定しました。わざとそういう書き方をしたんです。 誰かのアプリケーションのおかげで、SDはそう なったのです。建設的な批判は良いことです。 Renat Fatkhullin 2017.05.08 11:23 #29 履歴を扱うのはOrderSelectと同様のOrderXXXXコマンドです。このことをわからないふりをしないでください。特に、ライブラリを書いている場合は。MQL4のことも忘れてはいませんし、そこでも履歴と連動しています。200 000トレードの履歴スキャナを各ティックに 深く書き、ループから合理的な終了の条件を忘れる?これを、「わざとロシア人男性を演じる」という。あと、一部のダフ屋を参考にしないように。ループはわざとバカっぽく書いたんだよ。そして、テスト開始から5日以内でも、何千億ものOrderXXX関数がテストされ、そのうちの99.99%は呼び出す必要がないものばかりでした。 問題は、「Expert Advisorの例では、1ティックごとに取引の全履歴をスキャンするという、たった1つのことしかしないように書かれています」という、まったく正確な記述に反論し始めたことです。何しろ、手のひら一枚で99.99%のダムスキャンを除去できるのに、それではテストが失敗してしまいますから。 fxsaber 2017.05.08 11:28 #30 Renat Fatkhullin:履歴を扱うのはOrderSelectと同様のOrderXXXXコマンドです。わからないふりをしないでください。特に、ライブラリを書いている場合は。MQL4のことも忘れてはいませんし、そこでも履歴と連動しています。200 000トレードの履歴スキャナを各ティックに 深く書き、ループから合理的に終了する条件を忘れていませんか?これを、「わざとロシア人男性を演じる」と言います。あと、一部のダフ屋を参考にするのはやめましょう。ループはわざと書いたんです。そして、テスト開始から5日以内でも、数千億のOrderXXXXX関数のうち、99.99%は呼び出す必要のないものばかりをテストしました。 私は反論しません。MQL4に詳しいフォーラムユーザーの皆様には、この短いソースコードを見て、Renatが何を意味しているのか説明していただきたいと思います。 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム MT4-テスター VS MT5-テスター fxsaber さん 2017.05.08 01:11 電子ブック// Idea - https://www.mql5.com/ru/code/7464 #property strict input int Shift = 3; input int Limit = 18; input double Lots = 0.1; int PriceToInteger( const double Price ) { return((int)(Price / _Point + 0.1)); } void OnTick() { static int PrevBid = PriceToInteger(Bid); static int PrevAsk = PriceToInteger(Ask); const int IntBid = PriceToInteger(Bid); const int IntAsk = PriceToInteger(Ask); const bool TradeTime = (TimeCurrent() % (24 * 60 * 60) < D'1970.01.01 23:50'); // exclude swaps if (TradeTime && (IntAsk - IntBid < Limit)) { if ((IntBid - PrevBid >= Shift)) OrderSend(_Symbol, OP_SELL, Lots, Bid, 0, 0, 0); if (PrevAsk - IntAsk >= Shift) OrderSend(_Symbol, OP_BUY, Lots, Ask, 0, 0, 0); } PrevBid = IntBid; PrevAsk = IntAsk; for (int i = OrdersTotal() - 1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS) && ((!TradeTime) || (OrderProfit() > 0) || ((OrderType() == OP_BUY) && (PriceToInteger(OrderOpenPrice()) - IntBid >= Limit)) || ((OrderType() == OP_SELL) && (IntAsk - PriceToInteger(OrderOpenPrice()) >= Limit)))) OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0); }私の勘違いでしょうが、MT4のヒストリーワークの行方が見えません。よろしくお願いします。 1234567891011 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
プルーフ
これは証拠にはならない。
あなたは勘違いしています。
この専門家は、取引履歴への アクセスをテストしているに過ぎないのです。これは証拠にはならない。
あなたは勘違いしています。
私の主張は変わらない - 当該専門家は、取引履歴への アクセスのみをテストしている。
結論を急ぎすぎた。
クラウドコンピューティングは、MT4テスターのスピードの利点をすべて否定するものだからです。
それに、この場合、確かにEAはデータアクセスの速度だけをテストしています。しかし、これはほとんどのEAにとってボトルネックになるとは思えません。
MT5でヘッジポジションを持つ口座が導入された後、個人的にはMT4の良さが全く感じられなくなりました。私がクロスプラットフォームライブラリを使うのは、実際の口座でMT4を使っているからに他なりません。
個人的に唯一惜しいのは、ポインタや配列の参照です。インジケータでデータをコピーする必要はなぜかないんです。MQL5には、それ以外のすべてが備わっています。
結論に飛びつきましたね。
ZS すべてのランが完璧にマッチしているわけではありません。つまり、3つのうちどれかが嘘をついているのは間違いない(MT4+TDS、MT5、MT4Orders)。探してみるしかないでしょう。
サブのおかげで犯人が判明、比較する機会があると必ずそうなる。
Expert Advisorでバグが表示される
エムティーフォー
MT5
他に何があるのでしょうか?データの要求とファイルへの保存を行います。他の操作は行っていません。このEAは何をテストしているのでしょうか?
MT5でヘッジポジションを持つ口座が導入された後、個人的にはMT4の利点は一つもないと思っています。
このスレッドは建設的な内容が集中しているため、やや目立ちます。だから個人の好みはここで 議論したほうがいい、たとえば。
どこにエラーがあるのか?自分でも確認し、History関数があるところにはBreakPointsを置き、CTRL+F5でデバッグを実行しました。すべてきれいに仕上がりました。
結論に飛びつきましたね。
すべてにおいて。
5日間で20万件の取引が開始されるテストでは、おおよそ18万回刻みで行われます。900 000ティックに単純化してみましょう。100 000の注文が履歴でスキャンされ、900 000 * 100 000 = 900 000 000 000 OrderSelectの呼び出しがあります(ライブラリからのオーバーフローを含む)。テストされるのは、まさに9000億回のOrderSelectの呼び出しです。
そして、そのうちの99.99%は、「遅れ」を実証するためだけに行われた、まったく不要な通話です。
もし、クリーンなテストを行いたいのであれば、ライブラリなしで2つの同じクリーンなサンプルを書いてください。これにより、互換性のために組み込まれたオーバーヘッドがなく、クリーンであることが保証されます。
履歴へのアクセスを最適化し、このデモを完全に無効化しました。わざとそういう書き方をしたんです。
すべてにおいて。
99.99%のチャレンジは全く不要で、純粋に「ブレーキ」を実証するために作られたものです。
もし、クリーンなテストを行いたいのであれば、ライブラリなしで2つの同じクリーンなサンプルを書いてください。こうすることで、クリーンさが保証され、互換性のために組み込まれたオーバーヘッドが発生しないようになります。
2つのテスターを比較できるようにしたい。それぞれの長所と短所をご覧ください。また、比較はバグを特定する最も有効な方法の一つです。
スレッドは、両テスターの生データの同一性を示すことから始まる。これが基本であり、これがなければ何もできないのです。そして、全員がテスト用のExpert Advisorを選択することができます。
履歴へのアクセスを最適化し、このデモを完全に否定しました。わざとそういう書き方をしたんです。
履歴を扱うのはOrderSelectと同様のOrderXXXXコマンドです。このことをわからないふりをしないでください。特に、ライブラリを書いている場合は。
MQL4のことも忘れてはいませんし、そこでも履歴と連動しています。
200 000トレードの履歴スキャナを各ティックに 深く書き、ループから合理的な終了の条件を忘れる?これを、「わざとロシア人男性を演じる」という。
あと、一部のダフ屋を参考にしないように。ループはわざとバカっぽく書いたんだよ。そして、テスト開始から5日以内でも、何千億ものOrderXXX関数がテストされ、そのうちの99.99%は呼び出す必要がないものばかりでした。
問題は、「Expert Advisorの例では、1ティックごとに取引の全履歴をスキャンするという、たった1つのことしかしないように書かれています」という、まったく正確な記述に反論し始めたことです。何しろ、手のひら一枚で99.99%のダムスキャンを除去できるのに、それではテストが失敗してしまいますから。
履歴を扱うのはOrderSelectと同様のOrderXXXXコマンドです。わからないふりをしないでください。特に、ライブラリを書いている場合は。
MQL4のことも忘れてはいませんし、そこでも履歴と連動しています。
200 000トレードの履歴スキャナを各ティックに 深く書き、ループから合理的に終了する条件を忘れていませんか?これを、「わざとロシア人男性を演じる」と言います。
あと、一部のダフ屋を参考にするのはやめましょう。ループはわざと書いたんです。そして、テスト開始から5日以内でも、数千億のOrderXXXXX関数のうち、99.99%は呼び出す必要のないものばかりをテストしました。
私は反論しません。MQL4に詳しいフォーラムユーザーの皆様には、この短いソースコードを見て、Renatが何を意味しているのか説明していただきたいと思います。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
MT4-テスター VS MT5-テスター
fxsaber さん 2017.05.08 01:11
電子ブック
私の勘違いでしょうが、MT4のヒストリーワークの行方が見えません。よろしくお願いします。