Wie programmiert man? - Seite 198

 
arshadFX:
1, bool-Flag nach Auslösung der Handelskriterien hinzufügen

2, Überprüfung des bool-Flags vor der Auftragserteilung

3, nach der Bestellung sollte das bool-Flag zurückgesetzt werden

4, setzen Sie das Flag auch in init() zurück

Danke Mann

 

MQL Guide benötigt =^_^=

#Eigenschaft indicator_chart_window

#Eigenschaft indicator_buffers 2

#Eigenschaft indicator_color1 Weiß

#Eigenschaft indicator_color2 Weiß

extern int Fast.MA.Periode = 5;

extern int Langsam.MA.Periode = 34;

extern int Signal.Periode = 5;

//---- Puffer

double Buffer1[],

Buffer2[],

b2[],

b3[];

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- Indikatoren

// zwei zusätzliche Puffer für die Zählung

IndicatorBuffers(4);

IndikatorKurzname("MA3_54");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexPfeil(0,242); // nach unten 226 234 242

SetIndexPuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexPfeil(1,241); //AUF 225 233 241

SetIndexPuffer(1,b3);

// Diese Puffer werden nicht geplottet, sondern nur zur Bestimmung der Pfeile verwendet

SetIndexPuffer (2,Puffer1);

SetIndexPuffer (3,Puffer2);

//----

return(0);

}

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

//| Funktion zur Deinitialisierung des Custor-Indikators

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

int deinit()

{

//----

return(0);

}

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

//| Benutzerdefinierte Indikator-Iterationsfunktion |

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

int start()

{

int i, gezählte_Balken=IndicatorCounted();

double MA5,MA34;

int limit=Balken-gezählt_Balken;

Print(" print limit = ", limit);

if(gezählte_Balken>0) limit++;

// Hauptzeile

for(i=0; i<limit; i++)

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Langsam.MA.Periode,0,MODE_SMA,PREIS_MEDIAN,i);

Puffer1=MA5-MA34;

}

// Signalleitung

for(i=0; i<limit; i++)

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

}

// Pfeile

for(i=0; i<limit; i++)

{

if(Puffer1 > Puffer2 && Puffer1 < Puffer2)

b2 = Hoch+10*Punkt;

if(Puffer1 Puffer2)

b3 = Niedrig-10*Punkt;

}

//----

return(0);

}

Können Sie mir beibringen, wie man EA auf der Grundlage dieser Indizes erstellt? wenn der Pfeil auf dem Bildschirm erscheint und das ist die Zeit, in der EA automatisch in die Position eintritt, kann das gemacht werden? bitte leiten Sie mich an, denn ich bin scharf darauf zu lernen =^_^=

 

Gute Referenz

liew_stanley:
#Eigenschaft indicator_chart_window

#Eigenschaft indicator_buffers 2

............Führen Sie mich, wie ich bin scharf im Lernen =^_^=

Siehe diese Anleitung wirklich gutes Material MQL4 Tutorial

 

Die Indizes sehen wie folgt aus

Hier ist das oben erwähnte Pfeil-Signal, brauche jemanden, der mich bei der EA-Kodierung anleitet

Vielen Dank an alle da draußen =^_^=

Dateien:
untitled.jpg  80 kb
 

Kann mir jemand helfen, diesen Code in einen einfachen EA?

Hallo Leute, kann mir jemand helfen, diese Indizes in EA zu codieren? Nur eine einfache EA, die Position eingeben, wenn die Pfeile auf dem Bildschirm erscheinen, sehr geschätzt, wenn könnte mir helfen, auf eine einfache EA =^_^= danke

#property indicator_chart_window

#Eigenschaft indicator_buffers 2

#property indicator_color1 Weiß

#Eigenschaft indicator_color2 Weiß

extern int Fast.MA.Periode = 5;

extern int Langsam.MA.Periode = 34;

extern int Signal.Periode = 5;

//---- Puffer

double Buffer1[],

Buffer2[],

b2[],

b3[];

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- Indikatoren

// zwei zusätzliche Puffer für die Zählung

IndicatorBuffers(4);

IndicatorShortName("Elliott Wave Oscillator");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexPfeil(0,242); // nach unten 226 234 242

SetIndexPuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexPfeil(1,241); //UP 225 233 241

SetIndexBuffer(1,b3);

//

SetIndexPuffer (2,Puffer1);

SetIndexPuffer (3,Puffer2); // SetIndexPuffer (3,Puffer2);

//----

return(0);

}

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

//| Funktion zur Deinitialisierung des Custor-Indikators

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

int deinit()

{

//

//----

return(0);

}

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

//| Benutzerdefinierte Indikator-Iterationsfunktion |

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

int start()

{

int i, gezählte_Balken=IndicatorCounted();

double MA5,MA34;

int limit=Balken-gezählt_Balken;

Print(" print limit = ", limit);

if(gezählte_Balken>0) limit++;

// Hauptzeile

for(i=0; i<limit; i++)

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Langsam.MA.Periode,0,MODE_SMA,PREIS_MEDIAN,i);

Puffer1=MA5-MA34;

}

// Signalleitung

for(i=0; i<limit; i++)

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

}

// Pfeile

for(i=0; i<limit; i++)

{

if(Puffer1 > Puffer2 && Puffer1 < Puffer2)

b2 = Hoch+10*Punkt;

if(Puffer1 Puffer2)

b3 = Niedrig-10*Punkt;

}

//----

return(0);

}

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

 

Multi-Order-Code?

Hat jemand einen guten Code für den Handel mit mehreren Aufträgen, wenn gegen die maxlot Barriere läuft?

IE Broker erlaubt nur Lots von 5, und Sie wollen 10 zu handeln, so dass die Funktion 2 x 5 Lot Aufträge stattdessen handeln wird.

Ich bin auf der Suche nach mehr als nur eine einfache Schleife hier. Das Problem ist, dass eine einfache Schleife nicht immer vollständig abgeschlossen wird, und Sie könnten mit nur einem Teil der Bestellung offen gelassen werden.

 

Wie wird der OrderModify-Fehler 1 behoben?

Hallo,

Ich kann den OrderModify-Fehler 1 nicht vermeiden: er taucht immer auf, auch wenn ich versuche zu kontrollieren, dass die Daten vor der Änderung anders sind! Ich habe es auch mit doublenormalize versucht...funktioniert nicht...

Dies ist der Code:

if (Bid-OrderOpenPrice() >= VPoint*BreakEvenAtProfit)

{

if (OrderStopLoss() != OrderOpenPrice() + BreakEvenShift*VPoint)

{

Vresult = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ BreakEvenShift*VPoint,OrderTakeProfit(),0,Green);

Irgendwelche Vorschläge?

Vielen Dank!

 
liew_stanley:
Hallo Leute, kann mir jemand helfen, diese Indizes in EA zu codieren? Nur eine einfache EA, die Position eingeben //+------------+

Diese aero zeigen auf 2 MovingAverage corssing d.h. 5-34, könnten Sie viele EAs "MA's Cross EA" Suche und hoffentlich finden Sie ein

 

Wie kann ich die Alarmfrequenz einstellen?

Ich bin neu in mq4 und ich versuche, eine Anzeige auf dem Bildschirm zu erstellen, wenn es einen Crossover für MACD gibt. Unten ist mein Code, aber die Alarme halten Pop-up alle paar Minuten.

Wie kann ich es so programmieren, dass die Alarme nur einmal pro Stunde angezeigt werden? Oder eine Warnung pro Balken?

int start()

{

string MACD1="";

Farbe colt9;

double MACDM_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 0);

double MACDS_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,0);

double MACDM_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 1);

double MACDS_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,1);

if ((MACDM_S11 < MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="IN UPTREND"; colt9=LimeGreen; }

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 > MACDS_S10)) { MACD1="IN DOWNTREND"; colt9=Rot; }

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="NEUES AUFWÄRTSKREUZ"; colt9=Limettengrün; }

if ((MACDM_S11 MACDS_S10)) { MACD1="NEUES ABWÄRTSKREUZEN"; colt9=Rot; }

string MACD2="";

Farbe colt14;

double MACDM_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 0);

double MACDS_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,0);

double MACDM_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 1);

double MACDS_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,1);

if ((MACDM_L11 < MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="IN UPTREND"; colt14=LimeGreen; }

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 > MACDS_L10)) { MACD2="IN DOWNTREND"; colt14=Rot; }

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="NEUES AUFWÄRTSKREUZ"; colt14=Limettengrün; }

if ((MACDM_L11 MACDS_L10)) { MACD2="NEUES ABWÄRTSKREUZEN"; colt14=Rot; }

if(MACD1=="NEW UP CROSSING"&&MACD2=="IN UPTREND")

Alert(Symbol()," - ", "H1:"," MACD MAIN UPTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD1=="NEW DOWN CROSSING"&&MACD2=="IN DOWNTREND")

Alert(Symbol()," - ", "H1:"," MACD MAIN DOWNTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD2=="NEW UP CROSSING"&&MACD1=="IN UPTREND")

Alert(Symbol()," - ", "H1:"," MACD, MAIN TREND CHANGE TO UPTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD2=="NEW DOWN CROSSING"&&MACD1=="IN DOWNTREND")

Alert(Symbol()," - ", "H1:"," MACD, MAIN TREND CHANGE TO DOWNTREND"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

return(0);

}

 

in welchen Paaren?