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

 
faton:

こんにちは。簡単なインジケータを作ったのですが、新しいバーが来たときにインジケータの線が このように動作します。何が問題なのでしょうか?

CopyRates(FirstAktiv,PERIOD_CURRENT,0,rates_total,mrate1);
CopyRates(SecondAktiv,PERIOD_CURRENT,0,rates_total,mrate2);
CopyRatesで 返される内容を確認します。コピーされた要素の数は、要求されたものと必ずしも 一致しない。そのため、配列がオーバーランして、バッファのこの場所のデータがnullになることがあり、それが起こりました。
 

Terminalのアップデート中にProgram FilesMeta Trader 5MQL5 フォルダがC:UsersersGetAppDataに完全に コピーされたようです。そうでなければ、数日前に行われ、果物が正常にテストされた仕事の時間のペアがどこにあるか、私は説明することはできません。

.mqh-fileを通してクラスをフォーマットし、それを接続する習慣があることです。知らずにmqhとmq5をProgram FilesMeta Trader 5 accountsに放り込んで、Navigatorに表示されないのを見て、workフォルダ(C:UsersuserAppData \Roaming ↪MetaQuotes ◇Terminal ◇00C5B588590D4A2C89EFC1E0C5301ECA ◇MQL5)に移動させたのでした。ターミナルが更新されるまでは、すべて順調でした。さらにテストのためにExpert Advisorを実行してから、他のものをいじりたくなって、Program FilesMeta Trader 5のコピーである古いコードを見かけました。mq5が変更されておらず、端末がmqhに変更があったことを推測していないため、正しいバージョンが最適化されています。再コンパイルにより、旧バージョンに戻った。

その結果、すでにやったことのために1時間、2時間と費やさなければならず、とても迷惑しています。

私が考えるこの状況からの脱出方法は。

1) フォルダ全体をコピーし、標準パッケージに含まれるファイルのリストだけをコピーする。

2) 上書きされることを何とか警告する (ただし、標準ライブラリの 多くのファイルを変更する場合は面倒)。

3) Program Filesのmql5フォルダが変更されたことを何らかの方法で判断(crcを計算するなど)し、新しいバージョンをインストールする前に、データを保存できるように警告を出す。

4) 古いMQL5のコピーをTerminal00C5B588590D4A2C89EFC1E0C5301ECAに作る(例えばMQL5.384版を追加) - 一番簡単です。

まれにしかない問題だが、くそ、ひどいもんだ。

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
notused:

新しいバージョンのターミナルのアップデート中に、フォルダのFULL コピーがあるようです...........................。

........................... ......................


結論から言うと、非常に腹立たしく、すでにやったことにまた1時間か2時間かけなければならない。

この状況を打開する方法が見えてきた - ..........................。

稀な問題だが、くそっ、ひどいもんだ。

開発者への建設的なフィードバック:新しいものをインストールするときに、以前のビルドから全体のMQL5フォルダの 自動バックアップを 作成してください。 寿命 -次のビルドまで、それを交換してください。 これは、ビルドをインストールするときにクライアントファイルの慎重な処理をキャンセルしません。 それは不可抗力の場合(例えば上記のように)+標準ライブラリの クライアント版を保存するためのものです。
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

リカバリーファクター- このインジケータは、戦略のリスク性を示し、Expert Advisorが利益を得るためにどの程度のリスクを負って いるかを示します。最大ドローダウンに対する獲得利益の比率として計算されます。(どちらかは書いてありません)

stat_recovery_factor

回復の要因 - 比率STAT_PROFIT/STAT_BALANCE_DD

二重



Print("Factor=",TesterStatistics(STAT_RECOVERY_FACTOR));                                    // Выводим Фактор Восстановления
Print("Profit/BalanceDD=",TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_BALANCE_DD)); // Отношение профита к просадке по балансу
Print("Profit/EquityDD=",TesterStatistics(STAT_PROFIT)/TesterStatistics(STAT_EQUITY_DD));   // Отношение профита к просадке по средствам

回収率は、バランスではなく、エクイティで利益とドローダウンの比率を算出することを実験的に確立しました。

リファレンスに間違いはないですか?

 
ilunga:
そうかそうか、直近の5万枚を見せられたのか。1日に1440本のバーがあります。

ありがとうございました。

そういう問題じゃないんです。疑問というより、悲しみのため息......。

テストに 6月だけを 選んだ場合(30日×1440<5万)、理由によってチャートに何を表示すればいいのか?8月か

ところで、テスターのティンピッカーは、1秒後に勝手に閉じてしまうという不快な性質があるのですが、もう1つのティンピッカーは...。

致命的なことではなく、どうせなら手で選んだほうが早いのですが......。

 
//+------------------------------------------------------------------+
//|                                                  Sample_Tick.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"

int Tick_All;

MqlTick           last_tick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   Tick_All=0;

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(!SymbolInfoTick(_Symbol,last_tick))
     {
      Print("Failed to get Symbol info!");
     }

   Tick_All++;
   Print(Tick_All,"   ",last_tick.bid,"   ",last_tick.ask,"  ",last_tick.last," ",last_tick.volume);
  }
//+------------------------------------------------------------------+

価格が変化していないにもかかわらず、OnTickがトリガーされる理由がわからないのですが?

2012.09.10 11:52:11 Sample_Tick (EURUSD,M5) 493 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:10 Sample_Tick (EURUSD,M5) 492 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:09 Sample_Tick (EURUSD,M5) 491 1.2787 1.2789 1.2788 300000
2012.09.10 11:52:07 Sample_Tick (EURUSD,M5) 490 1.2787 1.2789 1.2788 300000

 
EQU:

ありがとうございました。

そういう問題じゃないんです。疑問というより、悲しみのため息......。

テストに 6月だけを 選んだ場合(30日×1440<50,000)、理由別にチャートで何を見るべきか?8月

サービスデスクに書き込む。また、チャートのバー 数がテスターで設定した終了日ではなく、常にリアルからカウントされるのも理解できない。
 
sion:
ボリューム - 変えられるし、もっとある)

ボリュームが変化しないのがわかると思います!!!

 
dentraf:

ボリュームが変化しないのがわかると思います!!!

すでにコードを見た。
 

仕組みがよくわからない、わからない)


Print("<><><><><",request_action.magic);//Print((ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000);
  if(magic_num!=(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000){Print("<<<<<<<<<<<<<<<<<<<<<",(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000," magic_num=",magic_num);return;}

KG 0 prp4 (EURJPY,M15) 02:23:25 <><><><><73200011000
RR 0 prp4 (EURJPY,M15) 02:23:25 <<<<<<<<<<<<<<<<<<<<<732 magic_num=732   <-поидее числа равны и условие не должно срабатывать

コメントプリント

Print("<><><><><",request_action.magic);Print((ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000);
  if(magic_num!=(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000){Print("<<<<<<<<<<<<<<<<<<<<<",(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000," magic_num=",magic_num);return;}

MH 0 prp4 (EURJPY,M15) 02:28:11 <><><><>73200011000
PE 0 prp4 (EURJPY,M15) 02:28:11 92233720368 <- そしてこの数字はどこから来たのかわかりませんが、どうやら最初の計算で「(ulong)MathMod(request_action.magic-MathMod(request_action.magic,100000000),100000000000)/100000000" とすると、何か変なカウントが入る。

<-conditionが成立せず、printが出なかったので、数値は等しくなった。

午前1時頃までは、まったく問題なかった。

追伸:ノートパソコンで試したところ、687ビルドはそのままで、同じパイです。