Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 488
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Wenn die Einstellungen von Ind_1 und Ind_GV übereinstimmen, hat Ind_GV einen etwas anderen Ergebniswert als Ind_1.
Wenn ich den Tester anhalte, während Ind_1 und Ind_GV abgeglichen werden, und Ind_GV kompiliere, stimmt der resultierende Wert der beiden Indikatoren vollständig überein.
Wer weiß, wie sich das erklären lässt?
Können Sie mir sagen, ob ich irgendeinen Code im Expert Advisor brauche, um im Strategietester im Optimierungsmodus zu laufen?
Ich versuche, meinen Expert Advisor zu optimieren, aber ich weiß nicht, woran es liegt:
2014.02.18 21:54:30.386 Tester: Cache-Datei "C:\...\tester\caches\test.NZDUSD5.0" gefunden und kann zur weiteren Optimierung verwendet werden
Wir haben Geschichte. Die Datei NZDUSD5_0.fxt wiegt etwa 150 Meter.
Sie können dies auch in den Protokollen des Testers sehen
2014.02.18 22:50:21.251 TestGenerator: Fehler bei nicht übereinstimmenden Daten (Volumengrenze 305 am 2014.02.12 13:35 überschritten)
Worum geht es hier?
Bitte um Hilfe!
Jede der Variablen kann einen Wert von 1 bis 5 annehmen... Sagen Sie mir, wie ich nicht 3125 Optionen schreiben muss)))
Bitte um Hilfe!
Jede der Variablen kann einen Wert von 1 bis 5 annehmen... Sagen Sie mir, wie ich nicht 3125 Optionen schreiben muss)))
Ziehe 25 Optionen und entscheide dann, wer größer ist.
Danke... das ist, was ich jetzt tue... Ich wollte es mit Arrays tun, aber ich habe nicht die Traktion...))
Bitte helfen Sie bei Indikatoren mit ".mqh"-Anhängen.
Die Indikatorpuffer ExtBuffer1[], ExtBuffer2[] und Buffer_M[] haben die Größe 0. Gleichzeitig funktioniert der Puffer ExtBuffer0[] einwandfrei und seine Größe ist gleich der von Bars, wie es sein sollte. Das Interessanteste ist, dass es in der alten Version von MT4 gut funktionierte, bevor es auf die neue Version aktualisiert wurde. Noch eine Sache. Wenn ich alle Elemente eines Indikators in dieselbe mq4-Basisdatei verschiebe, funktioniert alles wieder einwandfrei.
Frage: Warum werden die Feldgrößen für Indikatorpuffer in Anhängen auf 0 zurückgesetzt?
Hier ist der Quellcode des Indikators.
//+------------------------------------------------------------------+
//| AO_EMA_(with_includes).mq4 |
//+------------------------------------------------------------------+
#include <AO_EMA_(with_includes)_GLOB.mqh>
//--------------------------------------------
int init()
{
#include <AO_EMA_(with_includes)_INIT.mqh>
return(0);
}
//--------------------------------------------
int start()
{
#include <AO_EMA_(with_includes)_START.mqh>
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| AO_EMA_(with_includes)_GLOB.mq4 |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Black
#property indicator_color2 Green
#property indicator_color3 Red
//---- Input Data
extern int Slow = 100;
extern double Slow_Fast = 4.318;
extern int Average = 25; // Усреднение АО
extern bool Show_AO_G = true,
Show_AO_R = true;
//---- Глобальные переменные
int Fast;
bool Alert_done = false; // Флаг говорит о том, что Alert уже был раз сгенерирован.
//---- indicator buffers
double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];
//---- Буфера индикатора, для промежуточных расчетов
double Buffer_M[];
//+------------------------------------------------------------------+
//| AO_EMA_(with_includes)_INIT.mq4 |
//+------------------------------------------------------------------+
//---- Установка значение для переменной "Fast"
Fast = NormalizeDouble(Slow / Slow_Fast, 0);
//---- indicator buffers mapping
SetIndexBuffer(0, ExtBuffer0);
SetIndexBuffer(1, ExtBuffer1);
SetIndexBuffer(2, ExtBuffer2);
SetIndexBuffer(3, Buffer_M);
//---- drawing settings
SetIndexStyle(0, DRAW_NONE); // Линия не рисуется
SetIndexStyle(1, DRAW_HISTOGRAM); // Гистограмма
SetIndexStyle(2, DRAW_HISTOGRAM); // Гистограмма
SetIndexStyle(3, DRAW_NONE); // Линия не рисуется
//---- drawing begin settings
SetIndexDrawBegin(0, Fast); // Индикатор начинает рисоваться с этого бара, от начала графика слева.
SetIndexDrawBegin(1, Fast);
SetIndexDrawBegin(2, Slow);
SetIndexDrawBegin(3, Slow);
IndicatorDigits(Digits+1);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("AO_EMA ("+Fast+"-"+Slow+")");
SetIndexLabel(1,"Green");
SetIndexLabel(2,"Red");
//---- Обнуляем буфер индикатора
SetIndexEmptyValue(0, 0.0); SetIndexEmptyValue(1, 0.0);
SetIndexEmptyValue(2, 0.0); SetIndexEmptyValue(3, 0.0);
//---- initialization done
//+------------------------------------------------------------------+
//| AO_EMA_(with_includes)_START.mq4 |
//+------------------------------------------------------------------+
int limit, pos;
int counted_bars=IndicatorCounted();
double prev,current, pr;
bool up;
//---- Последний посчитанный бар будет пересчитан
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
Print("counted_bars=",counted_bars," Bars=",Bars," limit=",limit);
Print("0=",ArraySize(ExtBuffer0)," 1=",ArraySize(ExtBuffer1)," 2=",ArraySize(ExtBuffer2)," M=",ArraySize(Buffer_M));
//---- Расчет MACD для Гистограммы "= EMA(fast) - EMA(slow)"
if(Show_AO_G == true || Show_AO_R == true)
{ for(int i=0; i<limit; i++)
Buffer_M[i]=iMA(NULL,0,Fast,0,MODE_EMA,PRICE_MEDIAN,i)-iMA(NULL,0,Slow,0,MODE_EMA,PRICE_MEDIAN,i);
//---- Усредняем MACD по "Average".Это и будет рисоваться на графике..
//---- ... можно заменить на " EMA(Fast)".
pr=2.0/(Average+1);
pos=Bars-2;
if(counted_bars>2) pos=Bars-counted_bars-1;
//---- Основной расчет
while(pos>=0)
{ if(pos==Bars-2) ExtBuffer0[pos+1]=Buffer_M[pos+1];
ExtBuffer0[pos]=Buffer_M[pos]*pr+ExtBuffer0[pos+1]*(1-pr);
pos--; }
//---- Расперделение данных между 2-я буферами, для разделения по цветам
for(i=limit-1; i>=0; i--)
{ // При перерасчете самого левого бара, порядковый номер в массиве [i+1] выходит за пределы размера массива, поэтому расчет первого цикла прорускаем.
if(i == Bars-1) continue;
//------------------------------------
current = ExtBuffer0[i];
prev = ExtBuffer0[i+1];
if(current == prev) continue;
else
{ if(current>prev) up=true;
if(current<prev) up=false;
if(!up)
{ ExtBuffer2[i]=current;
ExtBuffer1[i]=0.0; }
else
{ ExtBuffer1[i]=current;
ExtBuffer2[i]=0.0; }
}}}
//--- Устанавливаем видимость индикаторов
if(Show_AO_G == false) SetIndexStyle(1, DRAW_NONE);
if(Show_AO_R == false) SetIndexStyle(2, DRAW_NONE);
Bitte helfen Sie bei Indikatoren mit ".mqh"-Anhängen.
Die Indikatorpuffer ExtBuffer1[], ExtBuffer2[] und Buffer_M[] haben die Größe 0. Gleichzeitig funktioniert der Puffer ExtBuffer0[] einwandfrei und seine Größe ist gleich der von Bars, wie es sein sollte. Das Interessanteste ist, dass es in der alten Version von MT4 gut funktionierte, bevor es auf die neue Version aktualisiert wurde. Noch eine Sache. Wenn ich alle Elemente eines Indikators in dieselbe mq4-Basisdatei verschiebe, funktioniert alles wieder einwandfrei.
Frage: Warum werden die Feldgrößen für Indikatorpuffer in den Anhängen auf 0 zurückgesetzt?
Hier ist der Quellcode des Indikators.
Machst du gerne Dinge in deinem Hintern?