Michail_David: 皆さん、ヒントです。Tester gives error:2017.02.08 18:24:43.751 TestGenerator: unmatched data error (low value 1.09860 at 2016.07.27 19:30 is not reach from lowest timeframe, low price 1.09880 mismatches.).
これはどういうことなのか、どうすれば直るのか。私は何か悪いことをしたのだろうか?
double Margin_Percent=AccountFreeMargin()*Percent/100; //Используемые средства для открытия ордеров double Lots=Margin_Percent/MarketInfo(Symbol(),MODE_MARGINREQUIRED);//Определение общего количества лотов double Lots_Volume=(MathFloor(Lots)+MarketInfo(Symbol(),MODE_LOTSTEP)); double MacdCurrent=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,1); //Параметры MACD основной линии текущего бара double MacdPrevious1=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,2);//Параметры MACD основной линии предыдущего бара double MacdPrevious2=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,3);//Параметры MACD основной линии со смещением на 2 бара double StopLoss=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,0);//Параметры Трейлинг стоп по параметрам ParabolicSAR текущего бара double Previous_StopLoss=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,1);//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара double CurrentPSAR=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,1);//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ voidOnTick() {
引用元です、質が悪いです。
標準装備のExpert Advisorも相性が良い。また、デモ口座では、取引もうまくいきません。トレードが始まりません。そのはずなのですが。
標準審査員で問題なし
標準のExpert AdvisorとあなたのExpert Advisorを比較し、違いを見つけて結論を導き出す。しかし、このエラーの文言は、あるTFからの値と他のTFからの値が一致しない場合、質の悪い引用であることを示しています。
もし、このコードが「建値のみ」で取引されるように書かれていれば、この問題は回避できるかもしれません。
追加さ れました。まさに建値で コードを作ろうとしているわけですが、なぜ全ティックでテストする必要があるのかが不明です...。規格と自分の規格を比較し、違いを見つけ、結論を出す。建値のみ」での取引を想定して書かれたコードであれば、このような不幸から逃れることができるのです。
標準的なコードでは、私のように終値も使用します。
どのEAを標準とするのか?ターミナルの配信で「終値で」EAを見たことがない。
そして、オープンプライスによって、トレーディングコード全体をこのモードで動作させるか、全くしないかのどちらかにしなければなりません。コードの一部だけが新しいバーで 使用され、残りはすべてのティックで動作します。
どのEAを標準とするのか?ターミナルの配信で「終値で」EAを見たことがない。
そして、オープンプライスによって、すべてのトレーディングコードをこのモードで動作させるか、まったく行わないかのどちらかにする必要があります。新しいバーで 使用されるのはコードの一部だけで、残りはすべてのティックで機能します。
標準的なMACDサンプルと呼ぶべきでしょう。新しいバーの 検索を最初に移した方が良いですか?
MACDサンプルのどこに「建値のみ」モードがあるのか、見当たらないのですが?新しいバーの検索をOnTick()の最初に移動させる方が良い。
そして、それは
static datetime New_Time=TimeCurrent();// Время текущего бара
は、関数の外側でグローバルに宣言したほうがよいでしょう。
あるいは、時間をかけて、フォーラムで新しいバーを検索する良い方法を検索してください。MACDサンプルのどこに「建値のみ」モードがあるのか、見当たらないのですが?新しいバーの検索をOnTick()の最初に移動させた方がよいでしょう。
И
static datetime New_Time=TimeCurrent();// Время текущего бара
の場合は、関数の外側でグローバルに宣言するのがよいでしょう。
皆さん、ヒントです。Tester gives error:2017.02.08 18:24:43.751 TestGenerator: unmatched data error (low value 1.09860 at 2016.07.27 19:30 is not reach from lowest timeframe, low price 1.09880 mismatches.).
double Lots=Margin_Percent/MarketInfo(Symbol(),MODE_MARGINREQUIRED);//Определение общего количества лотов
double Lots_Volume=(MathFloor(Lots)+MarketInfo(Symbol(),MODE_LOTSTEP));
double MacdCurrent=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,1); //Параметры MACD основной линии текущего бара
double MacdPrevious1=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,2);//Параметры MACD основной линии предыдущего бара
double MacdPrevious2=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,3);//Параметры MACD основной линии со смещением на 2 бара
double StopLoss=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,0);//Параметры Трейлинг стоп по параметрам ParabolicSAR текущего бара
double Previous_StopLoss=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,1);//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
double CurrentPSAR=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,1);//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//------
}
//-------------------------------------------------------------------------------------------------------
イベント生成関数以外でグローバルに変数計算が行われているのを見たのは初めてですが、コンパイラは文句も言わないのですか?
いいえ、すべてをありのままに受け止めるのです。