Wie programmiert man? - Seite 39

 

mish

Ich hatte einen Moment Zeit und habe versucht, Ihre Absicht so zu erfassen, wie ich sie verstanden habe.

Dateien:
advicerr.txt  2 kb
 

Vielen Dank

Vielen Dank ralph.ronnquist

diese Funktionen sind genau das, was ich brauche und würden auch anderen helfen, die eine ähnliche Funktion suchen

Ich wurde aufgehalten, sonst hätte ich mich schon früher bei Ihnen bedankt, vor allem, weil es Mühe gekostet hat

Gibt es eine einfache Möglichkeit, die Funktion so zu ändern, dass sie im Strategietester funktioniert? Ich weiß, dass die Ergebnisse der Arbeit mit nur einer Währung in der Tester ist fast nutzlos, außer es imitiert sehr grob, was ich brauche, um die Mathematik richtig, jede Hilfe wird geschätzt und ich hätte nie den Code in kurzer Reihenfolge gearbeitet, so noch einmal thankyou!

 

DT_ZZ.mq4-basierter EA

Ich habe ein kleines Problem mit diesem hier.

Ich habe den DT_ZZ.mq4 Indikator und von dem, was ich sehe, ist es sehr vielversprechend. Ich weiß, dass dieser Indikator neu gezeichnet wird, und ich stelle mir das folgendermaßen vor.

Wenn ein Pfeil und ein Abschnitt gleich sind, dann warten, bis der Balken geschlossen ist, und dann entsprechend kaufen/verkaufen.

Glaubt jemand, dass er dabei helfen kann? (Code wird unten gepostet)

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

//| DT_ZZ.mq4 |

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

// optimiert von Rosh

#property indicator_chart_window

#Eigenschaft indicator_buffers 3

#eigenschaft indicator_color1 Grün

#eigenschaft indicator_color2 Blau

#eigenschaft indicator_color3 Rot

//---- Indikator-Parameter

extern int ExtDepth=12;

extern int calculateLevel=2;

//---- Indikatorpuffer

double zzL[];

double zzH[];

double zz[];

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

// IndicatorBuffers(3);

//---- Zeichnungseinstellungen

SetIndexStyle(0,DRAW_SECTION);

SetIndexStyle(1,DRAW_ARROW);

SetIndexStyle(2,DRAW_ARROW);

SetIndexArrow(1,159);

SetIndexPfeil(2,159);

//---- Indikatorpuffer-Zuordnung

SetIndexPuffer(0,zz);

SetIndexPuffer(1,zzH);

SetIndexBuffer(2,zzL);

SetIndexEmptyValue(0,0.0);

SetIndexEmptyValue(1,0.0);

SetIndexLeerWert(2,0.0);

//---- Indikator-Kurzname

IndikatorKurzname("DT_ZZ("+ExtDepth+")");

//---- Initialisierung abgeschlossen

return(0);

}

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

//| |

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

int start()

{

int i,shift,pos,lasthighpos,lastlowpos,curhighpos,curlowpos;

double curlow,curhigh,lasthigh,lastlow;

double min, max;

int counted_bars=IndicatorCounted();

if (gezählte_Balken==0)

{

ArrayInitialize(zz,0.0);

ArrayInitialize(zzL,0.0);

ArrayInitialize(zzH,0.0);

lasthighpos=Bars; lastlowpos=Bars;

lastlow=Low;lasthigh=High;

Print("limit=",Bars-ExtDepth);

for(shift=Bars-ExtDepth; shift>=0; shift--)

{

curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift);

curlow=Low[curlowpos];

curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift);

curhigh=High[curhighpos];

//------------------------------------------------

if( curlow>=lastlow ) { lastlow=curlow; }

sonst

{

//???? ????

if( lasthighpos>curlowpos )

{

zzL[curlowpos]=curlow;

///*

min=100000; pos=lasthighpos;

for(i=lasthighpos; i>=curlowpos; i--)

{

wenn (zzL==0.0) weiter;

if (zzL<min) { min=zzL; pos=i; }

zz=0.0;

}

zz[pos]=min;

//*/

}

lastlowpos=curlowpos;

lastlow=curlow;

}

//--- hoch

if( curhigh<=lasthigh ) { lasthigh=curhigh;}

sonst

{

// ???? ?????

if( lastlowpos>curhighpos )

{

zzH[curhighpos]=curhigh;

///*

max=-100000; pos=lastlowpos;

for(i=lastlowpos; i>=curhighpos; i--)

{

wenn (zzH==0.0) weiter;

if (zzH>max) { max=zzH; pos=i; }

zz=0.0;

}

zz[pos]=max;

//*/

}

lasthighpos=curhighpos;

lasthigh=curhigh;

}

zz[0]=Close[0];

}

//----------------------------------------------------------------------

}

sonst

{

int pos2;

i=0;

while (pos2<calculateLevel && i<Bars-1)

{

if (zz!=0 && (zzH!=0||zzL!=0)) pos2++;

i++;

}

pos2=i-1;

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

{

zzH=0;

zzL=0;

zz=0;

}

if (zzH[pos2]!=0)

{

lasthighpos=pos2;

lasthigh=High[pos2];

lastlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,pos2);

lastlow=Low[lastlowpos];

}

sonst

{

lastlowpos=pos2;

lastlow=Low[pos2];

lasthighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,pos2);

lasthigh=High[lasthighpos];

}

//------------------------- ????????? ??????

Print("limit=",pos2-1);

for(shift=pos2-1; shift>=0; shift--)

{

curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift);

curlow=Low[curlowpos];

curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift);

curhigh=High[curhighpos];

//------------------------------------------------

if( curlow>=lastlow ) { lastlow=curlow; }

sonst

{

//???? ????

if( lasthighpos>curlowpos )

{

zzL[curlowpos]=curlow;

///*

min=100000; pos=lasthighpos;

for(i=lasthighpos; i>=curlowpos; i--)

{

wenn (zzL==0.0) weiter;

if (zzL<min) { min=zzL; pos=i; }

zz=0.0;

}

zz[pos]=min;

//*/

}

lastlowpos=curlowpos;

lastlow=curlow;

}

//--- hoch

if( curhigh<=lasthigh ) { lasthigh=curhigh;}

sonst

{

// ???? ?????

if( lastlowpos>curhighpos )

{

zzH[curhighpos]=curhigh;

///*

max=-100000; pos=lastlowpos;

for(i=lastlowpos; i>=curhighpos; i--)

{

wenn (zzH==0.0) weiter;

if (zzH>max) { max=zzH; pos=i; }

zz=0.0;

}

zz[pos]=max;

//*/

}

lasthighpos=curhighpos;

lasthigh=curhigh;

}

}

//------------------------- ????????? ??????

zz[0]=Close[0];

}

return(0);

}

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

Kann dies geändert werden 4 strategy tester?

ralph.ronnquist

hat mir großzügig eine großartige Funktion zur Verfügung gestellt, von der viele profitieren können, die ihre Verwendung benötigen.

Mein Problem ist, dass ich im Moment so lausig im Programmieren bin, dass ich sie nicht genug abändern kann 4 strategy tester.

Für Testzwecke ist nur eine Währung ausreichend, nur um die Mathematik der Trades unter verschiedenen Umständen mit verschiedenen Währungen auszuarbeiten.

Ist es möglich, die Arbeit von ralph zu ändern, um diesem Bedarf gerecht zu werden.

Dankeschön

Dateien:
ralph.txt  2 kb
 

Im Prinzip müssten Sie nur die Zeichenfolge "EURCHF" in "EURUSD" ändern. D.h., um mit Long "EURUSD" versus Short "EURUSD" zu arbeiten.

 

Das habe ich schon versucht

Danke für Ihre Antwort, aber ich habe es vergeblich versucht. Der von Ihnen zur Verfügung gestellte Code hat mir und meiner Freundin gezeigt, wie wenig wir über das Programmieren wissen!

Herzlichen Dank!

 

Hmm. Die einzige "Schlechtigkeit", die ich im Vorfeld erkennen kann, ist der Test "v == cut", der zwei doppelte Zahlen auf Gleichheit vergleicht. Vielleicht ist es besser, nur die vollen $-Beträge zu betrachten und somit "euprofit", "ecprofit", "cut" und "v" in den Typ "int" zu ändern?

 
NTrader:
Triviale Frage: Ich schreibe gerade zum ersten Mal einen neuen Personal Indicator. Ich kann meine Logs, die ich mit dem Befehl Print ("...") in der start{}-Methode erstellt habe, nicht anzeigen. Wo kann ich sie auf MetaTrader 4 einsehen?

Ok, ich verwende den Befehl Comment().

 

Dumbo hier

Hallo zusammen

Dies ist ein großartiger Thread für jemanden wie mich, der keine Ahnung vom Programmieren hat. Er enthält viele nützliche Informationen und viele kleine Codestücke, die ich kopieren und damit spielen könnte.

Ich hoffe, dass mir jemand bei diesem Problem helfen kann. Ich möchte einen EA erstellen, der auf dem Preis basiert. Was gebe ich in den Code ein, um das Folgende zu sagen:

1) Ich möchte, dass der EA den Preis um 20:00 Uhr auf dem Stundenchart betrachtet und sieht, in welchem Verhältnis er zum 100sma steht.

2) Wenn der Preis über dem 100sma liegt, möchte ich, dass er 2 Kaufaufträge auf einem bestimmten Niveau eröffnet.

3) Diese Niveaus basieren auf dem Schlusskurs der 16:00-Kerze. Wenn die 16:00-Kerze also bei 1,2000 steht, möchte ich, dass ein Kauf bei 1,1120 und 1,2080 eröffnet wird.

Ich habe die Stopps und Trailing Stops und Profit Levels alle ausgearbeitet und so, alle Codes aus diesem thred genommen. Ich danke also denen, die sie gepostet haben. I

Ich werde für immer in der Schuld stehen, wenn mir jemand hier helfen könnte.

Mit freundlichen Grüßen

Susan

 

Hilfe

Hallo zusammen

ich habe versucht, einen EA zu erstellen, und habe folgende Fehlermeldung erhalten:

'\end_of_program' - ending bracket '}' expected C:\...\My_First_EA.mq4(96,1)

Ich habe auf die Zeile doppelgeklickt und sie dann mit den öffnenden und schließenden Klammern davor überprüft, aber ich weiß immer noch nicht, wo ich den Fehler gemacht habe.

Dies ist der zweite EA, den ich ausprobiert habe, mit der gleichen Fehlermeldung, basierend auf dem gleichen Indikator.

Ich danke Ihnen.