DOBON.NETお気楽掲示板

■1625 / 親記事)  MT4のインジケータ 反応しない
  
□投稿者/ まさむね -(2024/11/09(Sat) 17:51:49)
  • アイコンchatGPTに依頼してMT4のインジケータを作成中です。
    以下のコードでコンパイルして、インジケータをチャートに挿入しても何の反応もありません。表示中のインジケータにも反映されていないです。

    chatに聞いても同じことしか言わず、改善しません・・・
    何が問題でしょうか?




    #property strict
    bool drawingMode = false;
    double highPrice = 0.0, lowPrice = 0.0;
    datetime highTime, lowTime;

    //+------------------------------------------------------------------+
    //| OnInit function |
    //+------------------------------------------------------------------+
    int OnInit()
    {
    Print("Indicator initialized"); // 初期化メッセージ

    // 描画モード切替ボタンの作成
    if (!ObjectCreate("DrawModeButton", OBJ_BUTTON, 0, 0, 0))
    {
    Print("Error creating button");
    return INIT_FAILED;
    }
    ObjectSet("DrawModeButton", OBJPROP_CORNER, CORNER_RIGHT_UPPER);
    ObjectSet("DrawModeButton", OBJPROP_XDISTANCE, 10);
    ObjectSet("DrawModeButton", OBJPROP_YDISTANCE, 10);
    ObjectSetText("DrawModeButton", "Drawing Mode: OFF", 10, "Arial", clrWhite);

    Print("Button created successfully");

    return INIT_SUCCEEDED;
    }

    //+------------------------------------------------------------------+
    //| OnDeinit function |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
    {
    Print("Deinitializing indicator...");
    ObjectDelete("DrawModeButton");
    }

    //+------------------------------------------------------------------+
    //| OnChartEvent function |
    //+------------------------------------------------------------------+
    void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
    {
    Print("OnChartEvent triggered with id: ", id);

    if (id == CHARTEVENT_OBJECT_CLICK && sparam == "DrawModeButton")
    {
    // ボタンクリックで描画モードを切り替え
    drawingMode = !drawingMode;
    ObjectSetText("DrawModeButton", drawingMode ? "Drawing Mode: ON" : "Drawing Mode: OFF", 10, "Arial", clrWhite);

    if (drawingMode)
    {
    highPrice = 0.0; // モードがオンの時に値をリセット
    lowPrice = 0.0;
    Print("Drawing mode enabled. Click on High and Low points.");
    }
    else
    {
    Print("Drawing mode disabled.");
    }
    }

    if (drawingMode && id == CHARTEVENT_CLICK)
    {
    Print("Chart clicked with drawing mode ON");

    // 描画モードがオンのとき、クリックした位置を取得
    if (highPrice == 0.0) // 最初のクリックを高値とする
    {
    highTime = (datetime)lparam;
    highPrice = dparam;
    Print("High set at ", highPrice);
    }
    else if (lowPrice == 0.0) // 2回目のクリックを安値とする
    {
    lowTime = (datetime)lparam;
    lowPrice = dparam;
    Print("Low set at ", lowPrice);
    DrawFibonacci();
    drawingMode = false;
    ObjectSetText("DrawModeButton", "Drawing Mode: OFF", 10, "Arial", clrWhite);
    }
    }
    }

    //+------------------------------------------------------------------+
    //| Draw Fibonacci function |
    //+------------------------------------------------------------------+
    void DrawFibonacci()
    {
    Print("Drawing Fibonacci from ", highPrice, " to ", lowPrice);
    string fiboName = "FiboRetracement";
    ObjectDelete(fiboName); // 既存のフィボナッチを削除
    ObjectCreate(fiboName, OBJ_FIBO, 0, highTime, highPrice, lowTime, lowPrice);
    ObjectSet(fiboName, OBJPROP_COLOR, clrGold);
    ObjectSet(fiboName, OBJPROP_WIDTH, 2);
    Print("Fibonacci drawn successfully.");
    }

引用返信 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Pass/


- Child Tree -