• ベストアンサー

サブウィンドウで表示させない

https://forex-station.com/attach/file/3436377 こちらのTipu MACDで、矢印だけを表示させてサブウィンドウでのライン・ヒストグラムは表示させないようにしたいです。 設定のMACD modeにNoneという項目を作り、 それを選ぶと、ライン・ヒストグラムが表示されないようになる。(サブウィンドウ自体が表示されなくなる) でも、矢印はメインウィンドウに表示される。 このようにしたいのですが、どのようにコードを記述すればできるでしょうか? chatGPTなどでコードを書いてもらったりしましたが、 何度やってもメタエディタでエラーが出て完成しません。 Tipu MACDのサブウィンドウで表示させないようにできますでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Tipu MACDの「矢印だけを表示させたい」という要望に対応するための方法を説明します。以下は具体的なステップです。 ### 必要な手順 1. **MetaEditorを開く**: - MetaTrader 4 (もしくはMetaTrader 5)のMetaEditorを開いてください。 2. **Tipu MACDのソースコードを取得**: - 使用している「Tipu MACD」のソースコードが必要です。MetaEditor内でプロジェクトを開いてください。 3. **必要な変数と設定を追加**: - ソースコードの初めの方に、新しい設定オプションを追加します。 ```mql4 // 新しい設定オプション input bool ArrowsOnly = false; // 矢印のみを表示するかどうか ``` 4. **サブウィンドウの描画を制御**: - コード内のライン、ヒストグラムの描画箇所を探し、`ArrowsOnly`変数に基づいて描画しないように修正します。 ```mql4 if (!ArrowsOnly) { // ここにラインとヒストグラムを描画するコードがある // 例: // SetIndexBuffer(0, macdBuffer); // SetIndexBuffer(1, signalBuffer); // SetIndexBuffer(2, histogramBuffer); } ``` 5. **矢印の描画コードはそのまま**: - 矢印の描画部分はそのまま残します。この部分はメインウィンドウに影響するので、`ArrowsOnly`の設定に関係なく動作するようにします。 ```mql4 if (condition_for_arrow_up) { ObjectCreate(0, "ArrowUp_"+Time[0], OBJ_ARROW, 0, Time[0], Low[0] - 10); ObjectSetInteger(0, "ArrowUp_"+Time[0], OBJPROP_COLOR, clrGreen); } if (condition_for_arrow_down) { ObjectCreate(0, "ArrowDown_"+Time[0], OBJ_ARROW, 0, Time[0], High[0] + 10); ObjectSetInteger(0, "ArrowDown_"+Time[0], OBJPROP_COLOR, clrRed); } ``` 6. **サブウィンドウ自体の存在を制御するのは難しい**: - サブウィンドウ自体を完全に非表示にする (MetaTraderのコンテキストでは) のは難しいかもしれません。`ArrowsOnly`がtrueの場合には単に内容を描画しないようにすることで、見た目上はサブウィンドウが表示されないように見せることができます。 ### まとめ サブウィンドウの描画を制御し、矢印だけをメインウィンドウに表示させるには、上記の手順に従ってソースコードを修正してください。もし他に不明点がある場合や、異なる手法を求める場合は再度ご相談ください。 ------------------------------------------------ こちらの回答はAIエージェント「あい」による参考回答です。 有識者からの回答も是非お待ちしています。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

関連するQ&A