CTickとPTickがどのように機能するか教えてください。どちらもインクルードとともに宣言されていますが、コードの他の場所ではどちらも参照されていません。つまり、CTickは何を追跡し、PTickは何を追跡するのでしょうか?
(MQのドキュメントには何も書かれていません)。
The pursuit of reliable back-test results in algorithmic trading hinges not only on robust strategy logic but also on the efficiency and precision of the underlying code. Raw code optimization and tweaking are critical to ensuring that Expert Advisors (EAs) perform as intended, minimizing computational overhead while maximizing execution accuracy. Poorly optimized code can distort back-test outcomes through delayed order execution, incorrect signal detection, or resource exhaustion—issues that mask a strategy’s true potential.
ストラテジーの開発プロセスでは、EAが機能的に強く、技術的に健全であることを 保証するために、いくつかの重要なステップを踏みます。まず、カスタムヘルパー関数と再利用可能なロジックブロックを追加することで、操作を合理化し、コードの繰り返しを避けます。次に、コードの読みやすさを向上させ、パラメータ調整を簡素化するために、適切に構造化された変数と定数を導入します。このような基本的な調整により、コードの維持が容易になり、バックテストの負荷が高い場合や複数シンボルのテストにおける全体的な実行時間が改善されます。
もう一つの大きな改良点は、テクニカル指標をより効率的に活用することです。ティックやバーごとにやみくもに指標を計算するのではなく、よりスマートな更新ロジックを実装し、負荷とタイムラグを軽減します。また、EAのロジックでより良い意思決定をサポートするために、様々な指標の組み合わせを試していきます。構造的なコードの改良、パフォーマンスを考慮した関数、インジケータの最適化を組み合わせることで、バックテストの質とスピードの両方を 劇的に向上させる ことができ、 一貫して利益を上げ、展開可能な戦略に近づけます。
悪気はないのだが、この記事は失敗だと言わざるを得ない。この記事は失敗作だと言わざるを得ないが、悪気はない。
私の最初の意図は、コードの問題点を示すことだったのだが、あまりにも多いので...2点だけにする。
double sl_distance = StopLoss * point; double tp_distance = TakeProfit * point; double sl = (tradeType == ORDER_TYPE_BUY) ? price - sl_distance : price + sl_distance; double tp = (tradeType == ORDER_TYPE_BUY) ? price + tp_distance : price - tp_distance; trade.PositionOpen(_Symbol, tradeType, In_Lot, price, sl, tp, NULL);
堅牢なコード?エラーチェックはどこで行われているのか?入力は何のチェックもなくそのまま使われ、ストプレレベルはチェックされず、証拠金はチェックされず、取引要求はチェックされず...。
// 強気パターンをチェック for (int j = i; j >= i - min_bullish_count + 1; j--) { if (iClose(symbol, timeframe, j) > iOpen(symbol, timeframe, j)) { bullish_count++; first_bullish_low = getLow(5); } else break; }
ローソク足ごとのiClose/iOpenを使用した場合のパフォーマンスは?これらの関数はデータ処理に最も時間がかかります。
さらに、getLow(5)はバグのようです。これ以上はチェックしていません。
私は取引アルゴリズム 自体についてコメントするつもりはありません。ただ、著者がEAが良い結果を出す歴史上の短い期間を都合よく選択したことに注目しました。
この記事は非常にお粗末だ。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事「バックテスト結果を改善するための生のコードの最適化と調整」はパブリッシュされました:
私たちのアルゴリズム取引戦略の開発は、パターン認識とシグナル検証に対する構造化された体系的なアプローチから始まります。本戦略の核となるのは、確率の高い反転シナリオを特定することを目的とした、ローソク足ベースのフレームワークです。ロングポジションの場合、ロジックは3つのパターンを体系的に検出します。連続する3本の強気ローソク足、それに続く1~2本の調整的な弱気ローソク足、インデックス1(直近で確定したバー)における確認用の強気ローソク足です。
一方、ショートポジションの場合は逆のパターンがトリガーとなります。つまり、連続する3本の弱気ローソク足、それに続く1~2本の戻しの強気ローソク足、インデックス1で確認用の弱気ローソク足です。この構成により、シグナルは新しいバーが形成された時点でのみ検証されるため、バー内の値動きによる誤検出を避け、確定した価格動向に基づいて実行されます。
このロジックを実際に運用可能にするため、戦略のアーキテクチャはモジュール化されたコード設計と計算効率を優先します。まず、ヘルパー関数を実装して、繰り返しおこなわれるタスクを抽象化します。具体的には、ローソク足の分類(強気/弱気判定)や連続ローソク足パターンの検証などです。これらの関数は、iOpenやiCloseなどMQL5のネイティブな価格データ取得メソッドを活用しつつ、静的変数によるキャッシュで冗長な計算を最小化します。
作者: Hlomohang John Borotho