Fragen Sie! - Seite 163

 
jizhong68:
Lieber Guru,

Ich verwende ein Array mit zwei Dimensionen, z. B. ZigZag[2][100], und möchte nach der ersten Dimension sortieren. Ich verwende die folgende Funktion:

ArraySort(ZigZag,WHOLE_ARRAY,0,MODE_DESCEND);

aber es scheint weder nach der ersten noch nach der zweiten Dimension zu sortieren. Kann mir hier jemand helfen?

herzlichen Dank

Die MQL-Dokumente besagen, dass ArraySort nach der ersten Dimension sortiert. Wenn Sie nicht die richtigen Ergebnisse erhalten, posten Sie Ihre Eingabe und Ausgabe des Arrays.

Das Schreiben einer einfachen Quicksort-Funktion würde nicht allzu viel Zeit in Anspruch nehmen. Erstelle ein neues Array, speichere die sortierten Ergebnisse und führe dann eine for-Schleife aus, um ZigZag nachzuschlagen und die zweite Dimension zu kopieren. Das ist wahrscheinlich ineffizient, aber es erfüllt seinen Zweck.

 

Hier ist der Code

beckham.is.619:
In der MQL-Doku steht, dass ArraySort nach der ersten Dimension sortiert. Wenn Sie nicht die richtigen Ergebnisse erhalten, posten Sie Ihre Ein- und Ausgabe des Arrays. Das Schreiben einer einfachen Quicksort-Funktion würde nicht allzu viel Zeit in Anspruch nehmen. Erstellen Sie ein neues Array, speichern Sie die sortierten Ergebnisse, und führen Sie dann eine for-Schleife aus, um ZigZag nachzuschlagen und die zweite Dimension zu kopieren. Das ist wahrscheinlich ineffizient, aber es erfüllt seinen Zweck.

Vielen Dank für Ihre Antwort.

Ich möchte die Unterstützungs- und Widerstandslinien in einem Diagramm berechnen und anzeigen. Der Algorithmus besteht darin, 100 ZigZag in der Historie zu finden und das Gewicht jedes ZigZag zu zählen. Wie kann man das Gewicht jedes ZigZag berechnen? Für jeden ZigZag versuche ich, das gesamte Array zu durchsuchen, um die Anzahl der anderen ZigZags zu finden, deren Wert 5 Punkte in der Nähe dieses bestimmten ZigZags liegt, z.B. wenn ein bestimmter ZigZag 1,5000 ist, dann möchte ich alle anderen ZigZags finden, deren Abstand zu diesen beiden ZigZags innerhalb von 5 Punkten liegt, wenn dies der Fall ist, füge ich 1 Zählung zu diesem bestimmten ZigZag hinzu, und das mache ich für alle 100 ZigZags.

Wenn ich dies zu beenden, versuche ich, alle diese ZigZags durch den Zähler Dimension zu sortieren. wie Sie im Indikator finden können. aber ich versuchte eine Menge durch den Wert vor und nach ArraySort(0 Funktion drucken wurde excuted. finden keinen Unterschied.

Ich poste den Indikator für Ihre Referenz.

Vielen Dank im Voraus.

Hier ist der Code für den Indikator:

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

//| Risisstance and Support.mq4 |

//| Copyright ?200 |

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

#property copyright "Copyright ?2006, Nick Bilak"

// gehackt in einen Kanal ind. von t_david irgendwann im Frühjahr 2007

#property indicator_chart_window

extern int Lücke = 5;

extern int Tiefe = 24;

extern int Abweichung=5;

extern int BackStep=3;

extern int BackStart=288;

int ZigN=100;

double ZigZag[2][100];

int ShowBars = 500;

int dist=24;

int init() {

return(0);

}

int start() {

int k,i,j,limit,hhb,llb;

int gezählte_Balken=IndicatorCounted();

//---- letzte gezählte Balken wird neu gezählt

if(gezählte_Balken>0) gezählte_Balken--;

ShowBars=Balken-gezählte_Balken;

FindZigZag();

ResistanceSupport();

// for(i=0;i<10;i++)

{

// ObjectDelete("P_Line");

// ObjectCreate("P_Line", OBJ_HLINE,0, CurTime(),Close[0]);

ObjectDelete("RS0");

ObjectCreate("RS0",OBJ_HLINE,0,CurTime(),ZigZag[1][0]);

ObjectDelete("RS1");

ObjectCreate("RS1",OBJ_HLINE,0,CurTime(),ZigZag[1][1]);

ObjectDelete("RS2");

ObjectCreate("RS2",OBJ_HLINE,0,CurTime(),ZigZag[1][2]);

ObjectDelete("RS3");

ObjectCreate("RS3",OBJ_HLINE,0,CurTime(),ZigZag[1][3]);

ObjectDelete("RS4");

ObjectCreate("RS4",OBJ_HLINE,0,CurTime(),ZigZag[1][4]);

ObjectDelete("RS5");

ObjectCreate("RS5",OBJ_HLINE,0,CurTime(),ZigZag[1][5]);

ObjectDelete("RS6");

ObjectCreate("RS6",OBJ_HLINE,0,CurTime(),ZigZag[1][6]);

ObjectDelete("RS7");

ObjectCreate("RS7",OBJ_HLINE,0,CurTime(),ZigZag[1][7]);

ObjectDelete("RS8");

ObjectCreate("RS8",OBJ_HLINE,0,CurTime(),ZigZag[1][8]);

ObjectDelete("RS9");

ObjectCreate("RS9",OBJ_HLINE,0,CurTime(),ZigZag[1][9]);

}

// if (ShowBars >= Bars) ShowBars = Bars;

/*

for (i=0;i<ShowBars;i++) {

b1=0;

b2=0;

b3=0;

b4=0;

b5=0;

b6=0;

b8=0;

hhb = iHighest(Symbol(),0,MODE_HIGH,dist,i-dist/2);

llb = iLowest(Symbol(),0,MODE_LOW,dist,i-dist/2);

wenn (i==hhb)

b3=High+SignalGap*Point;

wenn (i==llb)

b4=Low[llb]-SignalGap*Point;

b1=High;//+SignalGap*Point;

b2=Low[llb];//-SignalGap*Point;

}

*/

return(0);

}

//Finden Sie die zehn ZigZag,

void FindZigZag()

{

int i=BackStart;

int ii=0;

int m=0;

int n=0;

while(ii<ZigN)

{

if(iCustom(NULL,0, "zigzag",Tiefe,Abweichung,BackStep,0,i)>0.1) //1=Hoch

{

ZigZag[0]=0;

ZigZag[1]=iCustom(NULL,0, "zigzag",Depth,Deviation,BackStep,0,i);

// Print("ZigZag: ",ZigZag[1]);

ii++;

}

i++;

}

}

// Widerstand und Unterstützung finden

void WiderstandStütze()

{

int i,n;

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

{

for(n=0;n<ZigN;n++)

{

if(MathAbs(ZigZag[1]-ZigZag[1][n])<Point*Gap)

{

ZigZag[0]++;

}

// Print(i+":ZigNumber: "+ZigZag[0]+" ZigZag: "+ZigZag[1]);

}

// Print("Ende");

}

ArraySort(ZigZag,WHOLE_ARRAY,0,MODE_DESCEND);

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

{

// Print(i+":ZigNumber: "+ZigZag[0]+" ZigZag: "+ZigZag[1]);

}

// Print("Ende");

}

 

Kann ich ihr eine Frage zu MQL4 stellen?

Hallo aus Berlin,

Ich bin neu in diesem Forum und habe den MQL4 Kurs von Coders` guru gelesen. Vielen Dank für den Unterricht! Nun möchte ich ein einfaches Programm ausprobieren und bin schon auf gestoßen. Warum wird die MA-Linie nicht in meinem Hauptdiagramm angezeigt? Vielen Dank für Ihre Hilfe.

#Eigenschaft indicator_chart_window

#property indicator_color1 Rot

extern int Zeitraum_MA = 21;

bool Fakt_Up = true;

bool Fakt_Dn = true;

int start()

{

double MA;

MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0);

if (Bid > MA && Fact_Up == true)

{

Fakt_Dn = wahr;

Fakt_Up = false;

Alert("Kurs liegt über MA(",Period_MA,").");

}

if (Bid < MA && Fact_Dn == true)

{

Fact_Up = true;

Fakt_Dn = falsch;

Alert("Kurs liegt unter MA(",Period_MA,").");

}

return(0);

}

 

Hallo!

ich arbeite gerade an einer Idee für einen benutzerdefinierten Indikator. Ich muss wissen, ob dies in einem Skript möglich ist:

Kann MT4 jederzeit erkennen, welche Kerze sich unter meiner Maus befindet? Ich möchte also eine horizontale Linie beim Eröffnen oder Schließen einer bestimmten Kerze (die ich durch Klicken oder Schweben der Maus darüber auswähle) zeichnen, ist das möglich?

Ich konnte keine Informationen darüber finden.

Das würde mir sehr helfen, danke!

 

Order-/Transaktionsmanager für EAs

Hallo zusammen,

Kennt jemand eine MQ4-Bibliothek für Order-/Transaktionsmanagement für EAs? Ich interessiere mich hauptsächlich für die folgenden zwei Funktionalitäten:

1. Platzierung von virtuellen Stop-Orders: Anstatt OrderSend(...) mit einer Stop-Order zu verwenden, verwendet man MyOrderSend(...) mit denselben Parametern, und der Manager kümmert sich um alles, während er den Preis im Auge behält und die Marktorder platziert, wenn der Preis den Stop berührt.

Der Hauptzweck dieser Funktion besteht darin, die unnötige STOPLEVEL-Belastung zu vermeiden, aber sie ermöglicht auch "Schattenaufträge".

2. Der Manager sammelt den Status und Statistiken über ausstehende, ausgeführte und beendete Aufträge. Mit diesen Informationen können ausgefallene MM-Strategien und ausgefallene Stop-Strategien implementiert werden (z.B. kann die Anzahl der Male, die eine Live-Position im Geld war, für Gewinnsicherung oder Stop-Mechanismen verwendet werden).

Ich habe eine ganze Weile herumgesucht, daher gehe ich nicht davon aus, dass eine solche Bibliothek in ihrer Gesamtheit existiert, aber wenn Sie Teillösungen und relevante Codeschnipsel kennen, wäre das großartig.

Prost!

Trendick

 

Order/Transaktionsmanager für EAs

Ich habe gerade entdeckt, dass in mql5 ein sehr schöner Ordermanager entwickelt wurde, der abgesicherte Positionen ermöglicht. Siehe paulsfxrandomwalk blogspot (noch nicht erlaubt, Links zu posten).

Nicht vollständig, aber ein sehr schönes Stück Code.

Es sollte nicht einfach sein, aber immer noch möglich, es in mql4 zu übersetzen, da man den C++ OOP Code auf das extrem eingeschränkte mql4 herunterstufen muss. Scheint eine große Verschwendung zu sein.

Mein Aufruf für Ihre Links gilt also weiterhin...

 

MA-Linien im Chart

ssh95:
Hallo aus Berlin,

Ich bin neu in diesem Forum und habe den MQL4 Kurs von Coders` guru gelesen. Vielen Dank für Ihren Unterricht! Jetzt möchte ich ein einfaches Programm ausprobieren und habe bereits ausprobiert. Warum wird die MA-Linie nicht in meinem Hauptchart angezeigt? Vielen Dank für Ihre Hilfe.

#Eigenschaft indicator_chart_window

#property indicator_color1 Rot

extern int Zeitraum_MA = 21;

bool Fakt_Up = true;

bool Fakt_Dn = true;

int start()

{

double MA;

MA=iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0);

if (Bid > MA && Fact_Up == true)

{

Fakt_Dn = wahr;

Fakt_Up = false;

Alert("Kurs liegt über MA(",Period_MA,").");

}

if (Bid < MA && Fact_Dn == true)

{

Fact_Up = true;

Fakt_Dn = falsch;

Alert("Kurs liegt unter MA(",Period_MA,").");

}

return(0);

}

Hallo Berliner,

Es scheint, dass die Routinen zum Zeichnen der MA-Linien auf dem Chart in Ihrem obigen Code fehlen.

Suchen Sie schnell in diesem TSD-Forum nach vielen guten Beispielen für MA-Indikatoren, die Sie sich im Code ansehen können, um zu lernen, wie man die MA-Linien auf dem Chart zeichnet.

Viel Glück...und lernen Sie weiter!

Robert

 

Aktualisierungsproblem beim MTF-Indikator

Hallo,

Ich brauche Hilfe bei diesem Indikator. Seine MTF MACD Hang, aber es hat ein Problem auf aktualisieren, ich habe TF wechseln, um es zu korrigieren.

Bereits versuchen zu ändern

limit=Bars-counted_bars; zu limit=Bars-counted_bars/Period();

und auch das Hinzufügen von Refreshrates();

mit keinem Ergebnis.

Es tut mir leid, ich muss den Code in .mql hochladen, ich habe versucht, ihn mit dem php-Tag hochzuladen, aber das ist zu lang.

Ich lade auch das Bild auf MTF Thread

Vielen Dank, bevor Jungs.

Dateien:
 
codersguru:
Hallo Leute,

Ich habe eine Menge privater Nachrichten erhalten, in denen ich um Hilfe bei einigen Code-Stücken gebeten wurde.

Hier können Sie Ihre Fragen zu MQL4 stellen, und ich werde mein Bestes tun, um sie zu beantworten.

Codesguru,

Ich habe überhaupt keine Ahnung vom Programmieren. Und ich brauche dich oder jemanden, der mir hilft, indem er Alarm und Alert (als externen Indikator) auf diese execute_line indi.

Ich danke Ihnen im Voraus.

Prost, Terry

Dateien:
 

Waddah Attar Skalpieren

Hallo!

Ich habe einen interessanten Indikator gefunden, der auf Scalping ausgerichtet ist.

Ich möchte ihn backtesten, aber er druckt keine Balken nach ein paar Tagen.

Können Sie bitte sehen, was im Code bearbeitet werden muss, damit er ein paar tausend Balken ausgibt? Wenn es eine Option gibt, eine Zahl in den Meta-Editor einzugeben, sagen Sie es mir bitte. Ich konnte nichts finden.

Vielen Dank für Ihre Zeit

Xander

waddah_attar_scalping.ex4

waddah_attar_skalpieren.mq4