コーディングのヘルプ - ページ 712

 
mladen:
方法は全く同じで、ChartIndicatorAdd()のターゲットウィンドウを0に変更するだけです。

mladenさん、こんにちは!ご返信ありがとうございます。

ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA1Handle);

ここで、(1)トップウィンドウ

CharGetInteger(1=>トップウィンドウ)

ここで(0)下

ChartIndicatorAdd(0,(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL),RSI1Handle);
CharGetInteger(0=>下)です。

これはなかなか発見できない(笑)

今、MAに違う色を付けようとしています。
 
baraozemo:

mladenさん、こんにちは!ご返信ありがとうございます。

ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA1Handle);

ここで、(1)トップウィンドウ

CharGetInteger(1=>トップウィンドウ)

ここで(0)下

ChartIndicatorAdd(0,(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL),RSI1Handle);
CharGetInteger(0=>下)です。

これはなかなか発見できない(笑)

今、MAに違う色を付けようとしています。

このように

ChartIndicatorAdd(0,0,MA1Handle);
 
mladen:

このように

ChartIndicatorAdd(0,0,MA1Handle);

インジケータを上に置くか下に置くかの質問ですが、私が言ったように、私は発見しました...

ChartIndicatorAdd(0,1,MA1Handle); (上)

ChartIndicatorAdd(0,2,RS1Handle);(下)

が、実際の問題点です。

1) 今、私はMAに異なる色を適用しようとしています。

2) そして、グラフィックからMAを解放するための問題を解決します(RSIとWPRは正しくクリーニングされています...)

例えば...

RSI1,RSI2,RSI3,WPRは正しくクリーニングされるが、MA1,MA2,MA3はクリーニングされない...。

int OnInit()

  {

  

  if (_Period==Signal_0_MA_Timeframe)  

   {

   MA1Handle = iMA(_Symbol,Signal_0_MA_Timeframe,Signal_0_MA_PeriodMA,Signal_0_MA_Shift,Signal_0_MA_Method,Signal_0_MA_Applied);

   if (MA1Handle!=INVALID_HANDLE)

      ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA1Handle);

      //return(INIT_SUCCEEDED);

   }

  

  //---adicionando MA2

  if (_Period==Signal_1_MA_Timeframe)

   {

   MA2Handle = iMA(_Symbol,Signal_1_MA_Timeframe,Signal_1_MA_PeriodMA,Signal_1_MA_Shift,Signal_1_MA_Method,Signal_1_MA_Applied);

   if (MA2Handle!=INVALID_HANDLE)

      ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA2Handle);

      //return(INIT_SUCCEEDED);      

   }   



===============================//===========================


//+------------------------------------------------------------------+

//| Deinitialization function of the expert                          |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

   //limpa do gráfico os indicadores RSI e WPR

    for (int w = (int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); w>=0; w--)

   {

      string name = ChartIndicatorName(0,w,0);

      if (StringFind(name,"RSI(",0)==0)

            ChartIndicatorDelete(0,w,name);

      if (StringFind(name,"%R(",0)==0)

            ChartIndicatorDelete(0,w,name);

      if (StringFind(name,"Moving Average(",0)==0)

            ChartIndicatorDelete(0,w,name);

   }         

   

   ExtExpert.Deinit();

  }

 
baraozemo:

インジケータを上に置くか下に置くかの質問ですが、私が言ったように、私は発見しました...

ChartIndicatorAdd(0,1,MA1Handle); (上)

ChartIndicatorAdd(0,2,RS1Handle);(下)

実際の問題点

1) 今、私はMAに異なる色を適用しようとしています

2) そして、グラフィックスからMAを解放する問題を解決します (RSIとWPRは正しくクリーニングされます... ) 。

例えば...

RSI1、RSI2、RSI3、WPRは正しくクリーニングされるが、MA1、MA2、MA3はクリーニングされない...

int OnInit()

  {

  

  if (_Period==Signal_0_MA_Timeframe)  

   {

   MA1Handle = iMA(_Symbol,Signal_0_MA_Timeframe,Signal_0_MA_PeriodMA,Signal_0_MA_Shift,Signal_0_MA_Method,Signal_0_MA_Applied);

   if (MA1Handle!=INVALID_HANDLE)

      ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA1Handle);

      //return(INIT_SUCCEEDED);

   }

  

  //---adicionando MA2

  if (_Period==Signal_1_MA_Timeframe)

   {

   MA2Handle = iMA(_Symbol,Signal_1_MA_Timeframe,Signal_1_MA_PeriodMA,Signal_1_MA_Shift,Signal_1_MA_Method,Signal_1_MA_Applied);

   if (MA2Handle!=INVALID_HANDLE)

      ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),MA2Handle);

      //return(INIT_SUCCEEDED);      

   }   



===============================//===========================


//+------------------------------------------------------------------+

//| Deinitialization function of the expert                          |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

   //limpa do gráfico os indicadores RSI e WPR

    for (int w = (int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); w>=0; w--)

   {

      string name = ChartIndicatorName(0,w,0);

      if (StringFind(name,"RSI(",0)==0)

            ChartIndicatorDelete(0,w,name);

      if (StringFind(name,"%R(",0)==0)

            ChartIndicatorDelete(0,w,name);

      if (StringFind(name,"Moving Average(",0)==0)

            ChartIndicatorDelete(0,w,name);

   }         

   

   ExtExpert.Deinit();

  }

正弦波移動平均は"Moving Average "という名前しかなく、一意に特定できないため、安全に削除することができない
 

Mladen, 1) iCustomのラウンドデジットを最大0.1または0.01にするのを助けてください。

また、デフォルトの指標の平均値の代わりに「value2」(または3)を挿入する方法を教えてください。

iCustom(symbolName,PeriodMinutes,"_1_IFT 2-1",0,i)

 

こんにちは、Mr.MLADENです。

このインジケータ{ssa_squeeze_of_average_mtf_amp_alerts_2.mq4} を実行しましたが、何も表示されません。

直していただけませんか?

よろしくお願いします。

そして、このインジケータのMTFを作ることができます:ma_count_amp_alerts.mq4

このヒストグラムに似たMTF。

 
bilbao:

こんにちは、Mr.MLADENです。

このインジケータ{ssa_squeeze_of_average_mtf_amp_alerts_2.mq4} を実行しましたが、何も表示されません。

直していただけませんか?

よろしくお願いします。

そして、このインジケータのMTFを作ることができます:ma_count_amp_alerts.mq4

このヒストグラムに似たMTF。

ssa_squeeze . ..を動作させるためには、"価格のSSA "が必要です。
 
kostumer27:

Mladen, 1) iCustomのラウンドデジットを最大0.1または0.01にするのを助けてください。

また、デフォルトのインジケータ平均の代わりに "value2"(または3)を挿入する方法について教えてください。

iCustom(symbolName,PeriodMinutes,「_1_IFT 2-1」,0,i))。

インジケータのパラメータリストによりますが、インジケータ名とバッファ番号の 間にパラメータを渡す必要があります。

このような何か。

iCustom(symbolName,PeriodMinutes,"_1_IFT-1",yourParameter1,yourParameter2,yourParameter3,yourParameter9999,0,i)

他の部分は、私は理解していない

もしあなたが戻り値を制限するために熱いという意味なら、あなたはそれを行うことはできません。iCustom()呼び出しから何かに割り当てられた値を制限することができるだけで、次のようになります。

double result = MathMax(MathMin(iCustom(symbolName,PeriodMinutes,"_1_IFT 2-1",0,i),0.1),0.01);
 
mladen:
ssa_squeeze . ..が動作するためには、"SSA of price "が必要です。

ありがとうございます。

これでうまくいきました。

 

mladenさん。

MTFを作成することができます。

この写真のヒストグラムに似ています。

よろしくお願いします。

ファイル:
理由: