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

 
コピーで別のシートに再現、サービスデスクにリクエストして みる。
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
alexvd:

DebugBreak()が設定 された場所を正確に覚えていますか?

まだ再現のしようがない。

Servicedesk#18435 でリクエストを作成しました。

すべてのループの前にDebugBreaksを設定しました。

 
Urain:

servicedesk #18435 でリクエスト しました。

Zy DebugBreaksは、すべてのサイクルの前に入れました。

はい、ありがとうございます。

すでに、またやってしまった。

 
alexvd:

はい、ありがとうございます。

すでに、またやってしまった。

後日、動作するものと動作しないものの2つのコンパイル版を追加しましたが、なぜか重さが2倍近く違っています。
 
ddd06:

EAからのインジケータ呼び出し(値がインジケータと一致しない)に対するリクエスト#18261の 行方を知りたいです。

何らかの反応があればいいのですが...。

もう一度サービスデスクを確認してください、問題は解決されました
 

MACDサンプルについて 質問です。

AlpariのデモでExpert AdvisorをSL 50とTP200で設定しました。

GBPUSDのポジションを建て、しばらくしてExpert Advisorがポジションを修正し、以下のデータがログに入力されました。

> 2010.07.08 20:01:46 Trades '3037120' : failed modify sell 0.10 GBPUSD sl: 1.51740, tp: 1.49868 -> sl: 1.51740, tp: 1.49868 [Invalid stops] (ストップが無効です)。

問題は、なぜSLが障害者になったのか?ポジションは修正されたようですが(少なくとも以前はBUに移動していたようです)...。

同時に、戦略テスターは 全く悪態をつかなかった...。

追記

インジケーターの設定を記載したファイルを添付します...

 

2次元の配列 maVal[a][b] があります。a]で配列を参照し、[b]の値を比較したいので、muValの 値を[b]にコピーするには?

CopyBuffer(maHandle,0,0,3,maVal); 適していません。面倒なコードだなあ。

   bool Buy_Condition_1=((ma1Val[2]<ma1Val[1]) && (ma1Val[1]<ma1Val[0])||
                         (ma2Val[2]<ma2Val[1]) && (ma2Val[1]<ma2Val[0])||
                         (ma3Val[2]<ma3Val[1]) && (ma3Val[1]<ma3Val[0])||
                         (ma4Val[2]<ma4Val[1]) && (ma4Val[1]<ma4Val[0])||
                         (ma5Val[2]<ma5Val[1]) && (ma5Val[1]<ma5Val[0])); // MA растет
 
Interesting:

sl: 1.51740, tp: 1.49868 -> sl: 1.51740, tp: 1.49868 [無効なストップ]です。

問題は、なぜSLが障害者になったのか?その位置が修正された(少なくとも以前はBUに移動していた)ようですが・・・。

私の日記も、注文の変更でSLもTPも変わらなければ、しかめっ面をしていた。
 

簡単なスクリプトを書くのです。

void OnStart(){
  Alert("-----------------------------------");
  Alert("Period() = ",Period()," минут");
  Alert("------------ ",Symbol()," ------------");
}

同じ取引商品の異なる時間軸で、M1から順に順次投げていきます。結果:M1~M30のタイムフレームでは、期間が正しい。

しかし、H1の時間軸では、絶対に素晴らしい数字が投げかけられる。

最も興味深いのは、H2タイムフレーム、(その後の時間足も)H1タイムフレームからそれほど離れていないことです。


H1では16386、H2では16387、H3では16388と、最後の一桁で数字が異なる。

このバグを回避する方法ではなく、バグそのものを修正することに興味があるのです。全く削除してほしい。

 
drknn:

簡単なスクリプトを書くのです。

同じ取引商品の異なる時間軸で、M1から順に順次投げていきます。結果:M1~M30のタイムフレームでは、期間が正しい。

しかし、タイムフレームH1では、まったくもって素晴らしい数字が投げかけられる。

最も興味深いのは、H2タイムフレーム(およびそれに続く時間足)がH1タイムフレームからそれほど離れていないことです。


H1では16386、H2では16387、H3では16388と、最後の一桁で数字が異なる。

このバグを回避する方法ではなく、バグそのものを修正することに興味があるのです。全くなかったことになるように。

> このバグを回避する方法ではなく、バグそのものを修正することに興味があるのです。全くないのは困る。

失礼か強引かはともかくとして、このバグを指摘されると...

質問の本質について(提案)

これはMQL4ではなく、Period() はTFの秒数/分数を表すものではありません。

期間内の秒数を取得するには、PeriodSeconds 関数を使用する必要があります。


また、Periodを数値で表現しようとすると、ENUM_TIMEFRAMES 列挙のピリオドの識別子に対応する数値が得られる。


追記

MQL4形式でPeriodを翻訳する必要がある場合、私はこの関数を使用しています

//Fumction PeriodToMinute
int PeriodToMinute(ENUM_TIMEFRAMES Value)
//Возвращает число секунд в периоде
{
//----------------------------------------------------------------------------//
//Служебные переменные
int Result;
//----------------------------------------------------------------------------//
Result = PeriodSeconds(Value)/60;
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}

そして、「ピリオダイゼーション」についての不要な質問を避けるために、さらに2つの機能を紹介します。MinuteToPeriodとPeriodToStrがあります。

//Fumction MinuteToPeriod
ENUM_TIMEFRAMES MinuteToPeriod(int Value)
//Преобразовывает число сикунд в период, возвращаемый как ENUM_TIMEFRAMES
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
ENUM_TIMEFRAMES Result;
//----------------------------------------------------------------------------//
  switch(Value)
  {
  //Перирд текущещего графика
  case   0: return(PERIOD_CURRENT); break;
  //Минуты
  case   1: return(PERIOD_M1);  break;   //1 минута
  case   2: return(PERIOD_M2);  break;   //2 минуты
  case   3: return(PERIOD_M3);  break;   //3 минуты
  case   4: return(PERIOD_M4);  break;   //4 минуты
  case   5: return(PERIOD_M5);  break;   //5 минуты
  case   6: return(PERIOD_M6);  break;   //6 минуты
  case  10: return(PERIOD_M10); break;   //10 минуты
  case  12: return(PERIOD_M12); break;   //12 минуты
  case  15: return(PERIOD_M15); break;   //15 минуты
  case  20: return(PERIOD_M20); break;   //20 минуты
  case  30: return(PERIOD_M30); break;   //30 минуты
  //Часы
  case  60: return(PERIOD_H1); break;    //60 минут  - 1 час
  case 120: return(PERIOD_H2); break;    //120 минут - 2 часа  
  case 180: return(PERIOD_H3); break;    //180 минут - 3 часа
  case 240: return(PERIOD_H4); break;    //240 минут - 4 часа
  case 360: return(PERIOD_H6); break;    //360 минут - 6 часов
  case 480: return(PERIOD_H8); break;    //480 минут - 8 часов
  case 720: return(PERIOD_H12); break;   //720 минут - 12 часов
  //Старшие ТФ
  case 1440: return(PERIOD_D1); break;   //1 день
  case 10080: return(PERIOD_W1); break;  //1 неделя 
  case 43200: return(PERIOD_MN1); break; //1 месяц 
  //Default
  default: return(PERIOD_CURRENT);
  }
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}
//Function PeriodToStr
string PeriodToStr(ENUM_TIMEFRAMES Value)
//Функция возвращает тексовое представление ТФ (периода)
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
string Result; //Возвращаемое значение
//----------------------------------------------------------------------------//

  switch(Value)
  {
  //Минуты
  case PERIOD_M1:  Result = "M1";  break; //1 минута
  case PERIOD_M2:  Result = "M2";  break; //2 минуты
  case PERIOD_M3:  Result = "M3";  break; //3 минуты  
  case PERIOD_M4:  Result = "M4";  break; //4 минуты    
  case PERIOD_M5:  Result = "M5";  break; //5 минут
  case PERIOD_M6:  Result = "M6";  break; //6 минут
  case PERIOD_M10: Result = "M10"; break; //10 минут
  case PERIOD_M12: Result = "M12"; break; //12 минут
  case PERIOD_M15: Result = "M15"; break; //15 минут
  case PERIOD_M20: Result = "M20"; break; //20 минут
  case PERIOD_M30: Result = "M30"; break; //30 минут
  //Часы
  case PERIOD_H1:  Result = "H1";  break; //60 минут   - 1 час
  case PERIOD_H2:  Result = "H2";  break; //120 минут  - 2 часа
  case PERIOD_H3:  Result = "H3";  break; //180 минут  - 3 часа
  case PERIOD_H4:  Result = "H4";  break; //240 минут  - 4 часа
  case PERIOD_H6:  Result = "H6";  break; //360 минут  - 6 часов  
  case PERIOD_H8:  Result = "H8";  break; //480 минут  - 8 часов
  case PERIOD_H12: Result = "H12"; break; //720 минут  - 12 часов
  //Старшие ТФ
  case PERIOD_D1:  Result = "Day";   break; //День
  case PERIOD_W1:  Result = "Week";  break; //Неделя
  case PERIOD_MN1: Result = "Month"; break; //Месяц
  //Unknown
  default: Result = "Unknown";
  break;
  }
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}