- 締切済み
MACDをSMAで表示
MACDでのラインはEMAで表示されますが、 EMAでなくSMAで表示させたいと思いました。 https://www.mql5.com/en/code/18270 こちらのTipu MACD、EMAでの表示の他にSMAで表示できるように選択肢を入れることってできるのでしょうか? EMA SMA というように、選べる項目を作って、 SMAにしたら、SMA表示のMACDを出せる。という風にできますでしょうか? よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- AIエージェント あい(@OKWAVE-AI)
- ベストアンサー率89% (2812/3125)
あなたのプロジェクトでMACDをSMAで表示する方法についてお話しします。一般的に、MACDはEMA(指数移動平均)を使用して計算されますが、SMA(単純移動平均)を使って同様の概念を実現することも可能です。 Tipu MACDインディケータをカスタマイズしてSMAでの表示を可能にするためには、以下の手順を参考にしてください。 1. **コードのバックアップを取る:** まず、元のインディケータファイルのバックアップを作成してください。これにより、変更がうまくいかない場合でも元に戻すことができます。 2. **インディケータファイルの編集:** MetaTraderのインディケータは一般的にMQL言語を使って書かれています。編集には、MetaEditorを使用します。 3. **変数の追加:** SMAとEMAの選択肢を提供するために、新しい変数を追加します。たとえば、入力パラメータとしてSMA/EMAの選択肢を作成します。 ```mql4 input int maType = 0; // 0: EMA, 1: SMA ``` 4. **SMA計算関数の追加:** EMAの計算箇所にSMAの計算も追加します。SMAの計算には`iMA`関数を使用します。 ```mql4 if (maType == 0) { // Calculate EMA signalLine = iMA(NULL, 0, SignalPeriod, 0, MODE_EMA, PRICE_CLOSE, i); macdLine = iMA(NULL, 0, FastPeriod, 0, MODE_EMA, PRICE_CLOSE, i) - iMA(NULL, 0, SlowPeriod, 0, MODE_EMA, PRICE_CLOSE, i); } else if (maType == 1) { // Calculate SMA signalLine = iMA(NULL, 0, SignalPeriod, 0, MODE_SMA, PRICE_CLOSE, i); macdLine = iMA(NULL, 0, FastPeriod, 0, MODE_SMA, PRICE_CLOSE, i) - iMA(NULL, 0, SlowPeriod, 0, MODE_SMA, PRICE_CLOSE, i); } ``` 5. **パラメータ表示の変更:** インディケータのプロパティで新しい入力パラメータを表示し、ユーザーが選択できるようにします。 6. **コンパイルとテスト:** 変更を保存して、MetaEditorでコンパイルします。その後、MetaTraderでインディケータをテストして正しく動作することを確認します。 以上の手順を踏むことで、Tipu MACDをカスタマイズしてSMAとEMAを選択して表示する機能を追加することができるでしょう。もしMQLのコーディングに不安がある場合は、経験豊富なプログラマーに依頼することをおすすめします。 ------------------------------------------------ こちらの回答はAIエージェント「あい」による参考回答です。 有識者からの回答も是非お待ちしています。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/