Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 488

 
Es gibt zwei Kennzeichen Ind_1 und Ind_GV. Der Indikator Ind_GV unterscheidet sich von Ind_1 dadurch, dass er einen der Einstellwerte aus der globalen Variable des Client-Terminals erhält.
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

2014.02.18 21:54:30.388 TestGenerator: aktuelle Tick-Datei "C:\...\tester\history\NZDUSD5_0.fxt" gefunden

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)))

   if  (Kx==5&&     K>T &&     K>SA &&     K>SB &&     K>Bid &&
        Tx==4&&     T<K &&     T>SA &&     T>SB &&     T>Bid && 
        SAx==3&&    SA<K &&    SA<T &&     SA>SB &&    SA>Bid &&
        SBx==2&&    SB<K &&    SB<T &&     SB<SA &&    SB>Bid &&
        BID==1&&    Bid<K &&   Bid<T &&    Bid<SA &&   Bid<SB
       )
 
niktron:

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 Möglichkeiten und entscheide dann, wer größer ist.
 
tara:
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...))
 
Am Ende gibt es 3125 Optionen, nicht 25... aber die Aufteilung in 25 Optionen ist auch eine Sache)))
 
Schreiben Sie Ihre Kommentare sofort, sie werden Ihnen später helfen.
 
Er ist zu einer Frau gegangen.
 

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);

 
NEP:

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?