エラー、バグ、質問 - ページ 676

 

costy_,

初期化に失敗した後、再初期化を試みて、無限ループに陥る?

Oniniteでは、プログラムのグローバルレベルに関わる変数を初期化(変数に値を代入)しています。ゼロ以外のリターンコードを使えると、失敗の原因をプリントアウトして、まともな方法でプログラムを止めることができる(OnDeinitで 止めるなど)。これはかなり満足度の高いものです。

 

永久ではなく、initio.poiticovoが正常に完了するまで、ヘルプに警告が表示されます。

初期化後にglob.変数が正しく初期化されているかどうかをチェックしていますか?

初期化に失敗 したら、もう何度か初期化を試みますか?

 

回答してくださった方、ありがとうございました。このコードは、多通貨EAの カットであることが判明しました - テスターが食べたがらないことがわかりました。

新内容:2011年3月7日~8日、アルファFXでのみドロップが発生します。

 

コスパがいい

 Не вечный, до удачного завершения иниц. потиково (т.к. индикатор) предупредив в справке.

どうも、あなたの意図が理解できない、つまり、「Oninit()ポチコボで初期化」とは何か、 Oninit()ポチコボで初期化成功 」とは何かが理解できないのです。

初期化後にグローバル変数が正しく初期化されているかどうかを確認していますか?

また、「初期化後のプログラムのグローバル変数が初期化と整合しているかどうかをチェックする」というのも、私にとって新しい概念です。

でも、質問には答えられます。プログラムのグローバル変数(ハンドルなど)への値の代入が成功したかどうかのチェックは、Oninit()という関数内で行われます。失敗した場合は、必要に応じてそこで(Oninitで)最終ループを走らせています。Oninit()内で変数に値を代入する際に最終的に失敗した場合、プリンタにメッセージを送っています。そして、コードの中に自分のミスを見つけるか、フォーラムで報告します。

Oninit()関数が正常に終了した場合、「初期化マッチング」の型は意味をなさないので、終了後のチェックはしていません。

あなたの例ではどうでしょう。ローカル 変数bool errがそこで宣言されています。Oninit()関数のローカル変数を何らかの方法で初期化する予定でしょうか?

失敗 したら、もう何度か初期化を試してみますか?

Oninit()関数の中で、終了するまでずっとやっています。

補足させていただきます。このトピックでいう「初期化」とは、Oninit関数内でグローバル変数に値を代入することを意味します(俗称です)。クライアント端末がInitイベントを送信する前に、グローバル変数の初期化処理を独自に開始するため、これを追加しています。

 

イランガ

確かに、より良いコードとテスト条件はサーベスクにあります。

 

trali_vali_for_indicator() 関数で、複数のMqlRates EURUSD[],AUDUSD[],GBPUSD[],NZDUSD[],USDCAD[],USDCHF[],USDJPY[]同期をとって いること。

理論的には、一度同期させると、xxxxxx[0].time == yyyyy[0].time== ......という例示的な構造が 存在するのです。zzzzzz[0]さらに時刻で同期 > xxxxxxxx[0].time.

init()関数を作りましたが、OnInit() についてです!

OnInit()が失敗すると起動しないので(スターターが起動しない場合→クランクシャフトを手で回す)、ユーザーは次のいずれかを行う必要があります

  • インジケータ一覧 >> インジケータを再起動します。
  • ind.を削除 >> ind.を接続
  • サポート募集 >>
  • こと

tickoでは >> fの不成立 時」となっています。OnInit() は原因コードREASON_INITFAILEDDeinit イベントを生成し、次のティックで再初期化が 成功するまで継続する。+

(どうせインジケータにハリネズミが表示されるなら、なぜ割り込み-deinitをするのか)。

これはどちらかというと、開発者の方への質問なのですが...。

削除済み  
abolk:
掲示板の「返信」ボタンが操作できない問題はどうでしょうか?修正するつもりなのでしょうか?サポートからのある種の沈黙。せめて「やっている/やっていない」のような安心感。
修正しました、注意してくれた皆さんありがとうございました。
 

costy_:

何となくわかります。 私自身は同期の問題を避けているので、何もアドバイスできませんが。しかし、この問題自体は何度もフォーラムで議論されてきたことです。キーワード検索で調べてみてください。

 
Yedelkin:

何となくわかります。 私自身は同期の問題を避けているので、何もアドバイスできませんが。しかし、この問題自体は何度もフォーラムで議論されてきたことです。キーワード検索で探してみてください。

ありがとうございます、もう一回見てみます。

 

こんにちは、アドバイスをお願いします。

トレーディングモジュールにADXインジケータを追加しようとしています。ADXで確認しながら、2本の移動平均の シグナルを作ろうとしています。このコードは他のモジュールからコピーしたもので、元のバージョンでは当然すべてが動作します。このサイトからダウンロードしたもので、コード自体はエラーを出さないはずです。

//+------------------------------------------------------------------+
//| Create ADX indicator.                                            |
//| INPUT:  indicators -pointer of indicator collection.             |
//| OUTPUT: true-if successful, false otherwise.                     |
//| REMARK: no.                                                      |
//+------------------------------------------------------------------+
bool CSignalMY_MA_ADX::InitADX(CIndicators* indicators)
  {
//--- create ADX indicator
   if(m_ADX==NULL)
      if((m_ADX=new CiADX)==NULL)
        {
         printf(__FUNCTION__+": error creating object of the ADX");
         return(false);
        }
//--- add ADX indicator to collection
   if(!indicators.Add(m_ADX))
     {
      printf(__FUNCTION__+": error adding object of the ADX");
      delete m_ADX;
      return(false);
     }
//--- initialize ADX indicator
   if(!m_ADX.Create(m_symbol.Name(),m_period,m_period_ADX))
     {
      printf(__FUNCTION__+": error initializing object of the ADX");
      return(false);
     }
//--- ok
   return(true);
  }

しかし、私は何か間違っていたのでしょう、このようなエラーが出てしまいました。

'==' - 不正な操作 use SignalADX-MA.mqh 183 12.

'CiADX' - type mismatch SignalADX-MA.mqh 184 21

'=' - 不正な操作 use SignalADX-MA.mqh 184 16

'm_ADX' - parameter conversion not allowed SignalADX-MA.mqh 190 23

'm_ADX' - object pointer expected SignalADX-MA.mqh 193 14

よろしくお願いします。必要であれば、ここにファイルを添付することができます。私はちょうど学習中で、全体のプロセスは、EAのためにいくつかの異なる取引モジュールをカットして貼り付けることで構成されています。