Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 592

 

Bitte beraten Sie, warum das Hinzufügen der Zeichenfolge #property strict verhindert, dass Pfeile gezeichnet werden, hier ist der gesamte Code

//+------------------------------------------------------------------+

//| Oszillierender Rückblick.mq4 |

//| Copyright 2018, MetaQuotes Software Corp.

//| https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2018, MetaQuotes Software Corp."

#property link "https://www.mql5.com"

#Eigenschaft Version "1.00"

#property indicator_separate_window

#Eigenschaft indicator_buffers 5

#Eigenschaft indicator_plots 4

//--- Plot Signalgeber

#property indicator_label1 "Signalgeber"

#property indicator_type1 DRAW_LINE

#Eigenschaft indicator_color1 clrRed

#property indicator_style1 STYLE_SOLID

#Eigenschaft indicator_width1 1

//--- Plot Z

#property indicator_label2 "Z"

#property indicator_type2 DRAW_LINE

#Eigenschaft indicator_color2 clrBeige

#property indicator_style2 STYLE_DOT

#Eigenschaft indicator_width2 1

//--- plot Bay

#property indicator_label3 "Bucht"

#property indicator_type3 DRAW_ARROW

#property indicator_color3 clrLightSkyBlue

#property indicator_style3 STYLE_SOLID

#Eigenschaft indicator_width3 1

//--- plot Verkaufen

#property indicator_label4 "Verkaufen"

#property indicator_type4 DRAW_ARROW

#property indicator_color4 clrDeepPink

#property indicator_style4 STYLE_SOLID

#Eigenschaft indicator_width4 1

//--- Eingabeparameter

input int PCCI=14; // Indikatorperiode PCCI

Eingabe double KCCI=1.1; //Anpassungsfaktor

input int PMOM=14; //Periode des Momentum-Indikators

Eingabe int KMOM=1111; // Glättungsfaktor

Eingabe int PATR=14; // Indikatorzeitraum ATR

Eingabe int KATR=111111; // Glättungsfaktor

input int PFOR=14; // Periode des Forse-Indikators

Eingabe int KFOR=1111; // Glättungsfaktor

input int PTVR=12; // Periode p des TVI-Indikators

input int PTVS=12; // Periode c des TVI-Indikators

input int PTVU=5; //Periode bei TPI-Anzeige

Eingabe int KTVl=111; // Nivellierungskoeffizient

input int POSF=12; // Zeitraum des AOS-Schnellanzeigers

input int POSS=26; // Periode des AOS-Anzeigeschlitzes

input int POSZ=9; //small period of AOS indicator

input int KAOS=111111; // Glättungsfaktor

input int KAD=111; //Verschiebungsfaktor des AOS-Indikators

Eingabe double KK=2.0; // Filter für Pfeile

input int Amendment=20; //Pfeile im Indikatorfenster in verdaulicher Form einzeichnen

//--- Indikatorpuffer

double SignalerBuffer[];

double Z_Puffer[];

double BayBuffer[]; double BayBuffer[];

double SellBuffer[]; double SellBuffer[];

double PatchBuffer[];

//+------------------------------------------------------------------+

//| Benutzerdefinierte Initialisierungsfunktion für Indikatoren |

//+------------------------------------------------------------------+

int OnInit()

{

IndicatorSetInteger(INDICATOR_DIGITS,0);

SetIndexBuffer(0,SignalerBuffer);

SetIndexBuffer(1,Z_Buffer);

SetIndexBuffer(2,BayBuffer);

SetIndexPuffer(3,SellPuffer);

SetIndexPuffer(4,PatchPuffer);

SetIndexStyle(0,DRAW_LINE);

SetIndexStyle(1,DRAW_LINE);

SetIndexStyle(2,DRAW_ARROW);

SetIndexStyle(3,DRAW_ARROW);

SetIndexPfeil(2,241);

SetIndexPfeil(3,242);

SetIndexEmptyValue(2,0.0);

SetIndexEmptyValue(3,0.0);

IndicatorShortName("Basement signaler(" +(string) PATR + ")");

//---

return(INIT_SUCCEEDED);

}

//+------------------------------------------------------------------+

//| Benutzerdefinierte Indikator-Iterationsfunktion |

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

const int prev_calculated,

const datetime &time[],

const double &open[],

const double &high[],

const double &low[],

const double &close[],

const long &tick_volume[],

const long &Volumen[],

const int &spread[])

{

int i , limit=rates_total-prev_calculated ;

double cci,atr,mom,forc,ao,ac,ad,tvi,osma ;

//---- setzt die Zählparameter

if(prev_calculated==0)limit--;

sonst Limit++;

//---- count

for(i=limit-1; i>=0; i--)

{

cci=iCCI(NULL,0,PCCI,PRICE_TYPICAL,i)/KCCI;

mom=(iMomentum(NULL,0,PMOM,PRICE_TYPICAL,i)-100)*KMOM ;

forc=iForce(NULL,0,PFOR,MODE_SMA,PRICE_TYPICAL,i)*KFOR;

tvi=iCustom(NULL,0, "TVI_v2",PTVR,PTVS,PTVU,4,i)*KTVl ;

osma=iOsMA(NULL,0,POSF,POSS,POSZ,PRICE_TYPICAL,i)*KAOS;

atr=iATR(NULL,0,PATR,i)*KATR;

ao=iAO(NULL,0,i)*KAOS ;

ac=iAC(NULL,0,i)*KAOS ;

ad=iAD(NULL,0,i)/KAD ;

SignalerBuffer[i]=(cci+mom+forc+tvi+osma+atr+ao+ac+ad)/9 ;

}

for(i=limit-1; i>=0; i--)

{

Z_Puffer[i] = (SignalgeberPuffer[i]+SignalgeberPuffer[i-1])/2 ;

PatchBuffer[i] = MathAbs(SignalerBuffer[i]-Z_Buffer[i]) ;

}

for(i=0; i<limit && !IsStopped(); i++)

{

if(Z_Puffer[i]>SignalerPuffer[i]&&Z_Puffer[i+1]<SignalerPuffer[i+1]&&PatchPuffer[i]>KK)

BayBuffer[i]=SignalerBuffer[i]-Ergänzung;

if(Z_Puffer[i]<SignalerPuffer[i]&&Z_Puffer[i+1]>SignalerPuffer[i+1]&&PatchPuffer[i]>KK)

Verkaufspuffer[i]=SignalgeberPuffer[i]+Änderung;

}

//--- Rückgabewert von prev_calculated für den nächsten Aufruf

return(rates_total);

}

//+------------------------------------------------------------------+


Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Машинное обучение роботов Привет всем, я занимаюсь...
 
Alekseu Fedotov:
An den Verkäufer dieses Indikators.

Ich danke Ihnen...
 
Kann mir jemand sagen, was zu tun ist, wenn während eines EA-Tests das Kopieren von Puffern verweigert wird?
 
Roman Sharanov:
Kann mir jemand sagen, was zu tun ist, wenn während eines EA-Tests das Kopieren von Puffern verweigert wird?

Ermitteln Sie die Ursache.

 
Artyom Trishkin:

Ermitteln Sie die Ursache.

Und was könnte das sein? Liegt es an der Größe des Codes? Ich habe absichtlich alle Logik deaktiviert und nur das Kopieren des Puffers und nichts anderes übrig gelassen.

 
Roman Sharanov:

Und was könnte das sein? Liegt es an der Größe des Codes? Ich habe absichtlich alle Logik deaktiviert und nur das Kopieren des Puffers und nichts anderes übrig gelassen.

Am Wochenende sind alle telepathisch...
 

Bei der Durchführung eines Tests wird ein Fehler wegen Speichermangels angezeigt (der Test startet nicht). Wie kann man das beheben?

Nach dem Neustart des Terminals beginnt der Test, aber nach ein paar Tests ist der Speicher wieder leer.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Juer:

Bei der Durchführung eines Tests wird ein Fehler wegen Speichermangels angezeigt (der Test startet nicht). Wie kann man das beheben?

Nach dem Neustart des Terminals beginnt der Test, und nach mehreren Tests geht der Speicher wieder aus.

Das Programm, das Sie testen, beansprucht Ihren gesamten Speicher. Suchen Sie darin nach Fehlern. Prüfen Sie die Protokolle "Journal" und "Expert Advisors" in der Demo (nicht im Tester) - was steht dort? Vielleicht sagt das etwas über Speicherverluste während des Zeitrahmenwechsels aus.

Ohne den Code werde ich nicht weiter raten.

 
Artyom Trishkin:

Das Programm, das Sie testen, beansprucht Ihren gesamten Speicherplatz. Suchen Sie darin nach Fehlern. Schauen Sie sich die Protokolle "Log" und "Expert Advisors" in der Demo (nicht im Tester) an - was steht dort? Vielleicht sagt das etwas über Speicherverluste während des Zeitrahmenwechsels aus.

Ohne den Code würde ich nicht weiter raten.

In den Protokollen sind nach Abschluss der Tests noch viele ungelöschte Objekte vorhanden. Mehrere tausend... Ist das ein Problem?

 
Juer:

Nach Beendigung des Tests finden sich in den Protokollen eine Reihe von erfolglosen Objekten. Mehrere tausend... Ist das das Problem?

Hier werden sie mit Sicherheit antworten können.

Grund der Beschwerde: