初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 38

 
これは私が使っているインジケーターの例ですが、どれも同じようなものです。
double  iMAf( string symbol, ENUM_TIMEFRAMES timeframe, int period, int ma_shift, ENUM_MA_METHOD ma_method, int applied_price, int shift){
 
 
 
                   int handle=iMA(symbol,timeframe,periodd(period),ma_shift, ma_method,applied_price);Sleep(2000);
                    CopyBuffer(handle,0,0,100,MA);
                    ArraySetAsSeries(MA,true);
    return( (MA[shift])); } 
                   

全機能の外部で規定

 double MA[]; 
//---- handles for indicators
int MA_handle;

一般的にどこをどう見ればいいのか、間違ったことを書いてしまったのでしょうか。

 

OnInit()でハンドルを作成します。

void OnInit()
  {
   ma_h=iMA(_Symbol,_Period,MA_Period,0,MODE_SMA,PRICE_CLOSE);
  }

OnTick()でデータを取得する

void OnTick()
  {
   CopyBuffer(ma_h,0,1,2,ma);
  }

これは標準的な構成の例です。

 
さて、これらの指標を具体的に探すためにメモ帳を使いますが
 
ありがとうございます!!!!
 
起動時に一度だけトリガーされるのですが、その後は?
 
指標を 一度作っておけば、あとは作業しながら指標から値を取得することができます。
 
すみません、initで作成した場合、新しいティックや少なくともバーの到着とともにハンドルが再描画されるのはなぜでしょうか?本当に、ただ理解したいだけなんです。
 
Dimka-novitsek:
すみません、initで作成した場合、新しいティックや少なくともバーの到着とともにハンドルが再描画されるのはなぜでしょうか?本当に、ただ理解したいだけなんです。
ハンドルはid、インジケータへの参照。 一度受け取ってからCopyBuffer( handle,....)
 
Dimka-novitsek:
4,300.2って文字列じゃないし、そもそも何がいけないの?

コンパイラはエラーを出すと、行番号とカーソル位置の番号を表示します。

端末がエラーを発行した場合、エラー番号を表示します。ハンドブックの「ランタイムエラー」の項を参照し、どのエラーが「4302」という値に相当するのかを確認してください。ハンドル作成位置はサイドイシューです :)

 
ありがとうございます!
理由: