記事「フラクタルによる取引システムの設計方法を学ぶ」についてのディスカッション

 

新しい記事「フラクタルによる取引システムの設計方法を学ぶ」はパブリッシュされました:

これは、最も人気のあるテクニカル指標に基づいて取引システムを設計する方法を学ぶための連載の新しい記事です。フラクタル指標という新しい指標を学び、それを基にした取引システムを設計し、MetaTrader 5ターミナルで実行する方法について学びます。

1.Fractals highs and lows

    この戦略をもとに、fracUpValueとfracDownValueを継続的に確認することで、Fractals指標のHighとLawをチャート上のコメントとして返すような取引システムを作成します。fracUpが0より大きいか、fracUpが空値ではなくfracDownが空値の場合、取引システムは以下の値を持つコメントとしてチャート上にシグナルを返します。

      • Fractals High around:n

    一方、fracDownが0より大きいか、fracDownが空値ではなくfracUpが空値の場合、取引システムは以下の値を持つコメントとしてチャート上にシグナルを返します。

      • Fractals Low around:n

    次の図は、この戦略の設計図です。

    Fractals highs and lowsの設計図

    作者: Mohamed Abdelmaaboud

     


    著者に感謝します。すべてが記事で非常によく説明されています。私自身は除外しない - フラクタル信号と馬のコードは、他の何かでそれを完了するためにかかること - 例えば、彼の株式スキャルパーロボットのティックの速度。そして、ダニにすべてのすべてを行うことができます - とm1で多分。また、フラクタルからのリバウンドに純粋にラ平均化し、ここで最初のtsにも何かを終了するためにトロールすることができます。一般的に、私はこれらのトピックに関する有用な記事の著者を尊敬しています!
     

    質問に答えてください。

    1.なぜ2本目のクローズドバーでフラクタルの 値を使うのですか?まだ形成されていません。3本目の終値の値を使うべきだと思います:

       CopyBuffer(fracDef,UPPER_LINE,3,1,fracUpArray);
       CopyBuffer(fracDef,LOWER_LINE,3,1,fracDownArray);

    2.なぜトレーディングシステムと呼ぶのですか?取引はしません。チャート上のコメントだけです。

     
    Ivan Titov フラクタルの 値を使うのですか?まだ形成されていません。3本目のクローズドバーの値を使うべきだと思います:

    2.なぜトレーディング・システムと呼ぶのですか?彼らは取引をしません。チャート上のコメントだけです。

    現在のろうそくは0であり、前のものは1であり、3番目は3ではなく2です。

    トレーディングシステムは、体系的かつ論理的なステップに基づいてプログラムされているため、たとえコメントであっても取引を行うことができます。

     
    Mohamed Abdelmaaboud #:

    現在のローソクは0、前のローソクは1、3本目は3ではなく2。

    現在のローソク足(0)はまだ閉じておらず、それを使用すると、特にそれが最近開いたときに、多くの偽のエントリを与える可能性があります。

     

    こんにちは、私はこの目的のために提供された関数(宣言/定義)であなたの例「Fractals_with_Alligator」を勝手に実装しました。間違っていたらご指摘ください😊。

    //配列の作成
    double   fracUpArray[];
    double   fracDownArray[];
    MqlRates priceArray[];
    double   jawsArray[];
    double   teethArray[];
    double   lipsArray[];
    // init
    int      fracDef;
    int      Data;
    int      alligatorDef;
    // 値を取得する
    double   fracUpValue;
    double   fracDownValue;
    double   closingPrice;
    double   jawsValue;
    double   teethValue;
    double   lipsValue;
    //買いシグナルと売りシグナルを同時に発生させるためのブール変数の作成
    bool     isBuy;
    bool     isSell;
    
    int OnInit() {
    //買いシグナルと売りシグナルを同時に発生させるためのブール変数の作成
       isBuy    = false;
       isSell   = false;
    
       ArraySetAsSeries(fracUpArray, true);
       ArraySetAsSeries(fracDownArray, true);
       ArraySetAsSeries(jawsArray, true);
       ArraySetAsSeries(teethArray, true);
       ArraySetAsSeries(lipsArray, true);
    
       fracDef        =  iFractals(_Symbol, _Period);
       Data           =  CopyRates(_Symbol, _Period, 0, 3, priceArray);
       alligatorDef   =  iAlligator(_Symbol, _Period, 13, 8, 8, 5, 5, 3, MODE_SMMA,PRICE_MEDIAN);
    
    
       return(INIT_SUCCEEDED);
    }
    
    void OnTick() {
    
       CopyBuffer(fracDef, UPPER_LINE, 2, 1, fracUpArray);
       CopyBuffer(fracDef, LOWER_LINE, 2, 1, fracDownArray);
       CopyBuffer(alligatorDef, 0, 0, 3, jawsArray);
       CopyBuffer(alligatorDef, 1, 0, 3, teethArray);
       CopyBuffer(alligatorDef, 2, 0, 3, lipsArray);
    
    // 値を取得する
       fracUpValue    = NormalizeDouble(fracUpArray[0], 5);
       fracDownValue  = NormalizeDouble(fracDownArray[0], 5);
       closingPrice   = priceArray[0].close;
       jawsValue      = NormalizeDouble(jawsArray[0], 5);
       teethValue     = NormalizeDouble(teethArray[0], 5);
       lipsValue      = NormalizeDouble(lipsArray[0], 5);
    
    //戦略の条件とチャートに関するコメント
    //購入の場合
       if(lipsValue>teethValue && lipsValue > jawsValue && teethValue > jawsValue
          && closingPrice > teethValue && fracDownValue != EMPTY_VALUE) {
          Comment("Buy", "\n",
                  "jawsValue = ", jawsValue, "\n",
                  "teethValue = ", teethValue, "\n",
                  "lipsValue = ", lipsValue, "\n",
                  "Fractals Low around: ", fracDownValue);
          isBuy = true;
       } // end if
    //売る場合
       if(lipsValue < teethValue && lipsValue < jawsValue && teethValue < jawsValue
          && closingPrice < teethValue && fracUpValue != EMPTY_VALUE) {
          Comment("Sell", "\n",
                  "jawsValue = ", jawsValue, "\n",
                  "teethValue = ", teethValue, "\n",
                  "lipsValue = ", lipsValue, "\n",
                  "Fractals High around: ", fracUpValue);
          isSell = true;
       } // end if
    }
    
    void OnDeinit(const int reason) {
       EventKillTimer();
       ObjectsDeleteAll(0,0,-1);
    
       IndicatorRelease(fracDef);
       IndicatorRelease(Data);
       IndicatorRelease(alligatorDef);
       
       ArrayFree(fracUpArray);
       ArrayFree(fracDownArray);
       ArrayFree(jawsArray);
       ArrayFree(teethArray);
       ArrayFree(lipsArray);
    
       Comment("");
    }
     

    こんにちは、このようなわかりやすい記事をありがとうございます...私のフラクタルコードでエラーが発生しました(2024.11.10 17:42:12.121 _24 Dev 3 EA Strat1 (EURUSD,H1) _24 Dev 3 EA Strat1.mq5:void OnDeinit(const int):OnDeinit:48Error Code:INDICATOR_DATA_NOT_FOUND ) .

    あなたのコードを実行すると、同じエラーが発生します。


    どうか助けてください。私はたくさんの異なる組み合わせを試してみました。


    サポートに感謝します。

    ジェイ

     
    あなたのこのシステムを適用することは本当に有益なのでしょうか?
     
    litianjun # あなたのこのシステムを適用することは本当に有益なのでしょうか?
    どんな戦略でも、実際の口座で使用する前にテストすることが重要です。
    説明の記事を読み、ダウンロードし、ご自身でシステムのテストを行い、使用するかどうかをご自身で決定してください。あなたが求めているような保証はできません。
     
    litianjun #:
    私はあなたのこのシステムを適用することが本当に有益であるかどうかを知りたいのですが?
    私は(彼のコードを使用して)フラクタル/アリゲーターを実装しており、私の経験では、偽の信号がたくさんあります。フラクタルの一般的な問題は、フラクタルのシグナルより2本先にローソク足があることです。RSI(70/30)や他のインジケーターと組み合わせて、良質なエントリーを見つけられるか試しています。
     
    Sau-boon Lim #:
    私は(あなたのコードを使用して)フラクタル/アリゲーターを実装し、私の経験は、多くの偽の信号があるということです。フラクタルの一般的な問題は、フラクタルシグナルよりローソク足2本分先にあることです。RSI(70/30)や他のインジケーターと組み合わせて、良質なエントリーを見つけられるか試しています。
    ビル・ウィリアムズのフラクタルは、ブレイクアウトとリバーサルの両方をトレードするのに適した方法です(これはビルのオリジナル戦略ではありません)。しかし、メタトレーダーがそれを忠実に実装していると言うには、私は同意できません。ビル・ウィリアムズのストラテジーでは、2つの注文の先行者または後続者のいずれかが同値の場合、新しいローソク足を分析しなければならないとコメントしている。さらに、"Trading Chaos "という本の一番最初のページには、読者の一人が、より精度の高いrsi2のヒントについて彼に感謝している部分があります(目次の前だと思いますが、彼が宣伝している読者からの手紙のようなものです)。