MQL5で学び、共に書く - ページ 40

 
この指標は、専門家と並行して行われる指標の再計算という一般的な独立プロセスに入る。
 
Dimka-novitsek: ... しかし、OnInitで作成された場合、何が新しいティックまたは少なくともバーでインジケータハンドルを再描画 させるのでしょうか?

再描画されるのはインジケーターのハンドルではなく、インジケーターのグラフィカルな構成 そのものです。ハンドルは単なる整数値です。

ディムカノビッチェク
なぜかit's initで書くと非現実的なんですよねー。

わかりやすく説明しましょう。このインジケータは、手動とプログラムの2つの方法で実行することができます。どちらの場合も、端末は同じ計算処理を作成し、サポートします。ソフトスタート後は、マニュアルと同じように、インジケーターを一度スタートさせるだけで、あとはコードに従って計算されます。インジケーターのプログラムスタートには、iCustom()関数とその類似の関数を使用します。正しいパラメータを設定したiCustom()が正常に起動すると、該当する計算処理は手動起動時と同じように動作します。

複数のインジケータを同時にプログラム的に起動することができます。ハンドルは、ある計算処理をアドレス指定するための識別子に過ぎません。ハンドルを使用すると、プログラムで起動した特定のインジケーターの計算データをコピーすることができます。

したがって、プログラムでインジケータを起動し、ハンドルを取得するには、一般的にOnInit()でこれを行えば十分です。 インジケータを「再描画」するために、ティック毎に手動で起動することはありません。

 
ありがとうございます!!!!
 
ありがとうございました。基本的には了解しました。それで、もう2時間もここに座って考えているんです。まあ、initでヘンドルの発表があったのは不満だけどね。約20の通貨ペアが掲載されている多通貨ロボットです。ロボット内のさまざまな場所で、指定された機能が呼び出され、さまざまな時間軸が設定され......。計算前にこれだけのハンドルを宣言するロボットは現実的ではない、つまり現実的かもしれないがナンセンスだ...。4ではうまくいってガサガサになった!!!!ここに座っていて、本当に困っているんだ......。
int OnInit()
  {
//---
  if(Digits() == 3 || Digits() == 5) slip=slip *10; 
  //рисовка места под дашборд   
   time1 = 0;
   initGraph();
   ArrayInitialize(avg_,1);
//---
 ATR_handle=iATR(symbol,periodd(timeframe),period);
   return(0);
  }
//+------------------------------------------------------------------+
 
実際にERR_MARKET_NOT_SELECTED 4302 マーケットウォッチで選択されたシンボルはありません - 問題の根本がどこにあるのかのように、さらに問題を扱う。

どのように選択されていないのですか?何が選択されていないのか?MarketWatchとは?シンボルマークは何ですか?通貨ペア? だから、いいえ、私は関数の入力として私のコードに通貨ペアを非常によく持っている!。
 
チェックもしますし、やり方もわかっているつもりです。しかし、新バージョンで修正されたという1行を除いて、googleやYandexでMarketWatchを見つけることができません。
 
Dimka-novitsek:
実際には、ERR_MARKET_NOT_SELECTED 4302 Symbol not selected in MarketWatch - dealing with issue further, like where of the root of the problem is.どのように選択されていないのですか?何が選択されていないのか?MarketWatchとは?シンボルマークは何ですか?通貨ペア?だから、いいえ、私は関数の入力として私のコードに通貨ペアを非常によく持っている!。


SymbolSelect()関数を見てみましょう。MarketWatchはマーケットウォッチの ウィンドウです。質問する前に、右上のフォーラム検索で答えを探してみてください。

P.S. すべての投稿にお礼を書く必要はありません。:)

 

うん。

こんな感じで、プリントをチェックイン。

 double iATRf (string symbol, int timeframe, int period, int shift  ){
  
  Print("symbol");Print(symbol); Print("timeframe");Print(timeframe); Print( "period");Print( period);Print("shift");Print(shift);  
  
    ATR_handle=iATR(symbol,periodd(timeframe),period);
   CopyBuffer(ATR_handle,0,0,100,ATR);
    ArraySetAsSeries(ATR,true); 
    return( ATR[shift]); }  

そして、チェックの結果、関数が正常なパラメータを取り込んでいることがわかりましたね。これでよしとする。そして、質問に対する理解を深めるために、リンク先を調べてみます !ありがとうございました。

 
Dimka-novitsek:
チェックもしますし、やり方もわかっているつもりです。しかし、MarketWatchは、新バージョンで修正されたという1行を除いて、GoogleとYandexでは見つ かりませんでした。
いやー、ディモン・ウラジミロビッチさん、面白い人ですね :)
 

ありがとうございます!!!

これは、プラットフォームがこのペアをサポートしていないということですか? 2012.09.21 16:23:17 Failed to createiMA indicator handle for CADJPY/PERIOD_D1, error code 4302

Документация по MQL5: Технические индикаторы / iMA
Документация по MQL5: Технические индикаторы / iMA
  • www.mql5.com
Технические индикаторы / iMA - Документация по MQL5