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

 
エラーを利用したクラウドナーワーク。
その原因は何なのでしょうか?クラウドリソースが使用できない
 
Urain:

説明する。


変更予定の 事前 発表がありました。次回の ビルドにおける最終的な 変更点のリストは、ビルド自体のリリース後に 公開されます。
 
Rosh:
予定されている 変更点の事前 発表がありました。次回の ビルドにおける最終的な 変更点のリストは、ビルド自体のリリース後に 公開されます。
ありがとうございます。
 

私は、インジケーターのコードを長い間、一生懸命にかじり、エラーを検出することに絶望するまでになりました。ダミーズ」に書かなかったのは、私のミスではなく、端末の作業のミスが疑われるからです。

このインジケータの目的は、別のタイムフレームから現在のタイムフレームにフラクタルを配置し、新しいフラクタルのバーが現れたら新しいものを追加していくことです。フラクタル矢印の他の配置方法を提案しないでください、そのようなことではありません。ここでの質問は根本的なもので、このコードに関連しており、おそらく端末の不正な操作に関連しているのです。iFractals のヘルプから例を取り、論理的に半分に短縮して(上のフラクタルのみ)認識しやすくし、標準の Fractals.mq5 からコードを少し拝借しました。私は、誤解を避けるために非常に慎重になる必要がありました:私は、ほとんどすべての可能な配列を束ね、作業された配列をきれいにし、呼び出されたインジケータのハンドルを解放しましたが、結果に顕著な違いは生じませんでした。その結果、次のような問題点や操作のクセがあることがわかりました。

  1. 初めて ターミナルを起動し、新しいチャートウィンドウを開き、コンパイルしたばかりのインディケータを適用すると、コードの考え方やロジック通りに配置されず、ヒストリーの最後のゼロバーに全てのフラクタルが蓄積されます(1つだけ配置されているようです)。正しい配置は、他の時間枠にジャンプして初めて開始される(時には初めてでさえない)。また、チャートからインジケータを削除し、チャートウィンドウを閉じて再コンパイルし、新しいウィンドウを開いてインジケータを適用すると、ほとんどの場合、必要なフラクタル・アレンジメントをすぐに取得することができます。誤った効果を確認するには、端末を完全にアンロードし、手順1のすべてのステップを繰り返す必要があります。1.おそらく問題は、呼び出されたインジケータのハンドルの寿命と、カスタムインジケータの 最初の起動時の特定の動作にあるのではないでしょうか?フラクタルが正しく配置されていない場合 (すべてのフラクタルがゼロバー上で「圧縮」されている場合)、ループ内の exact_extremum のすべての要素の出力はゼロ結果を与えますが、それを基に計算されて埋められる TimeUpBuffer の隣接する値の出力は、常に一貫して異なる時刻の日付を示します。したがって、次の時間帯に正しい値で正しく埋められるのであれば、最初のインジケータ作成時に埋められないのはなぜでしょうか?
  2. 同じ問題を受け継いだ同じコードでも、今度は全く違う機能に重点が置かれているのです。本インジケータでは、INDICATOR_CALCULATIONSとして中間計算された一部の配列をインジケータバッファにバインドすることを控えることができます。インジケーターの初期コードです。pを除けば、すべて問題ないようです。私は、ポイント1以外は問題ないようです。
  3. しかし、非常に巧妙にするために、最善の勧告に従って、中間計算のための配列を指標バッファにリンクするようにしてみましょう。
    #property indicator_chart_window
    #property indicator_buffers 3
    #property indicator_plots   1
    
    [...]
    
    int OnInit()
      {
       [...]
       SetIndexBuffer(1,PreliminaryUpBuffer,INDICATOR_CALCULATIONS);
       SetIndexBuffer(2,exact_extremum,INDICATOR_CALCULATIONS);
       [...]
      }
    をコンパイルして実行します。その結果、Terminal Expert Advisorのログにエラーメッセージが表示されます。2011.11.11 07:42:03 (AUDUSD,H1) アレー・アウト・オブ・ザ・レンジ、ライン。
                CopyHigh(_Symbol,PERIOD_M1,TimeUpBuffer[shift+1]-1,
                                           TimeUpBuffer[shift],
                                           exact_extremum);
    
    一部の時間枠でフラクタル配置がない、または散発的である。
  4. 占いセッションを開始する、魔法のハンドパスを作る、自動書記に従う、置き換える。
    #property indicator_chart_window
    #property indicator_buffers 3
    #property indicator_plots   1
    のためのものです。
    #define NUMBER 1
    
    #property indicator_chart_window
    #property indicator_buffers NUMBER+2
    #property indicator_plots   NUMBER
    これが正しいかどうかは別として、理解不能なほど効いているのです

noosphereの住人、特に開発者の方にお願いがあります:各項目の説明と、インジケータコードのデバッグ方法をアドバイスしていただけないでしょうか(もし私がその実装を変更しないのであれば)。

ありがとうございます、ファイルを添付します。

追伸:ファイル名には括弧がありましたが、アップロード後は括弧がなくなります。

 

マジックトレードの現在の 利益はどのように決定するのですか?

このコードはクローズド・トレードで利益を返すが、オープン・トレードで利益が必要だ。

#include <Trade\Trade.mqh>
CTrade trade;
void OnTick()
  {
   double profit=0;
   if(PositionSelect(Symbol()))profit=PositionGetDouble(POSITION_PROFIT);
   if(profit==0) trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,0.1,SymbolInfoDouble(Symbol(),SYMBOL_ASK),0,0,"");
   if(profit>1) trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,0.1,SymbolInfoDouble(Symbol(),SYMBOL_ASK),0,0,"");
   
   double ld_return=0;  
   HistorySelect(0,TimeTradeServer());
   for(int i=HistoryDealsTotal()-1;i>=0;i--) // По всем сделкам от конца к началу
     {
      ulong ticket=HistoryDealGetTicket(i); // Определение тикета сделки и ее выделение
      if(ticket!=0) 
      {
      if(HistoryDealGetInteger(ticket,DEAL_TYPE)<2)
      ld_return+=HistoryDealGetDouble(ticket,DEAL_PROFIT);
      }
     }     
   Comment(ld_return);   
  }
 

初期化に失敗した原因を知るにはどうしたらよいですか?

で初期化開始前にエラーをリセットしています。

ResetLastError();

初期化の最後に、次のようなエラーが表示されます。

Print("Ошибка " + IntegerToString(GetLastError()));

結局Expert Advisorsのタブに入ることになる

2011.11.11 08:47:51 SimpleExpert (EURUSD,H1) Error 0

ジャーナル」タブで

2011.11.11 08:47:51 SimpleExpert (EURUSD,H1)のエキスパート初期化に失敗しました。

 
Konstantin83:

初期化に失敗した原因を知るには?

初期化を始める前に、関数を用いてエラーをリセットしました。

ResetLastError();

最後にエラーが表示されます

Print("Ошибка " + IntegerToString(GetLastError()));

エキスパート]タブで次のような結果が得られます。

2011.11.11 08:47:51 SimpleExpert (EURUSD,H1) Error 0

ジャーナル」タブで

2011.11.11 08:47:51 SimpleExpert (EURUSD,H1)のエキスパート初期化に失敗しました。

OnInitは0を返すのか、0でないのか?
 
stringo:
OnInitは0を返すのか、0でないのか?

OnInitはtrueを返すのですが、なぜか見逃していました。

ありがとうございます、大丈夫です。

 
ddd06:

マジックトレードの現在の 利益はどのように決定するのですか?

このコードはクローズド・トレードで利益を返すが、オープン・トレードでも利益が欲しい

ドミトリー(Integer)の記事を見てください。そこには、すべてが最適に実装されているのです。記事:指定されたマジックナンバーによる累積ポジション量計算の最適化手法.
 
こんにちは、多変数を書き始めた、私はiMAを呼び出す、実際の貿易のいくつかの理由ですべてがうまく機能する、私はテスターで実行するとすぐにエラー専門家は、指標の[4804]をロードできないため移動平均、非常に明確ではない、私はインターネット上でもっともらしい答えを見つけることができませんでした削除しました。アドバイスをお願いします。
Документация по MQL5: Технические индикаторы / iMA
Документация по MQL5: Технические индикаторы / iMA
  • www.mql5.com
Технические индикаторы / iMA - Документация по MQL5