本当の質問 - ページ 10

 
m100:

goldtrader さん、あまりにアホな質問かもしれませんが、それにしても、「データウィンドウ」はどこからすべての値を取得しているのでしょうか


それは、MT4端末の開発者への質問です。関連する指標や時系列のバッファから来ているのだと思います。
 
goldtrader:
MT4端末の開発者の方に質問です。対応する指標やタイムスケールのバッファからだと思います。

では、GetWindowsData(3 buffer,0 bar)のような同等の関数はないのでしょうか?

GetWindowsDataは自分で思いつきました。

 
goldtrader:

msdn、WinApi、WindowHandleを読み込む。私はこれらの技術の専門家ではありません。あなたのタスクのためにそれはBLEEPであることを心に留めておいてください。

ここに何かがあるhttps://www.mql5.com/ru/forum/120356

データウィンドウからこれらの値を取得するには、マウスカーソルが常に目的のウィンドウの上にある必要があります。

カーソルがどこかに移動したり、フォーカスが外れたりすると、ウィンドウの更新が停止します。

 
m100:

では、GetWindowsData(3 buffer,0 bar)のような同等の関数はないのでしょうか?

明らかに違う。必要なものはすべてそこにあり、冗長性は必要ないのだから。データウィンドウは基本的に不要です。
 
OKみんなありがとう、drknnの コード分解してみるよ
 

何か説明した方が分かりやすいかもしれませんね。

MyValue=MyValue/(PeriodSkolzjaschej+1); 1という行は、番号=PeriodSkolzjaschejのロウソクから検索を開始し、ロウソク0本で終了するループなので変数PeriodSkolzjaschejに追加されています。したがって、ループに参加したローソク足の総数は、PeriodSkolzjaschej+1 になります。つまり、PeriodSkolzjaschej=35の場合、Period=36のMAが実際に関与することになるのです。コードを何も変更せずに35周期の移動平均を取得するためには、PeriodSkolzjaschej変数を34に設定 する必要があります。

 
drknn:

おそらく、ポイントを押さえるために、いくつかのことを明確にする必要があるのでしょう。

MyValue=MyValue/(PeriodSkolzjaschej+1); 1という行は、ループが番号=PeriodSkolzjaschejのロウソクから検索を開始し、ロウソクの読みがゼロで終了するので変数PeriodSkolzjaschejに追加されているのです。したがって、ループに参加したローソク足の総数は、PeriodSkolzjaschej+1 になります。つまり、PeriodSkolzjaschej=35の場合、Period=36のMAが実際に関与することになるのです。コードを何も変更せずに35周期の移動平均を取得するためには、PeriodSkolzjaschej変数を34に設定する必要があります。

しゃい

applied_priceは追加変数ですか?

 
m100:

ありがとうございます

applied_priceは追加変数ですか?


いいえ、デフォルトでiMACD()をゼロに設定しています。これは、終値に基づいて インジケータを構築することを意味します。もしユーザーに選択させるのであれば、インジケータ値の要求は次のようにする必要があります。

Main_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,0,0);

Signal_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,0);

// ------- Усредняем сигнальную линию ------------------
for(int i=PeriodSkolzjaschej;i>=0;i--){
 MyValue=MyValue+iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,i);
}