Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich bitte um Hilfe bei der Erstellung eines einfachen Handelsroboters auf Basis des i-Regr-Indikators. Wenn sie gut gemacht ist, garantiere ich eine angemessene Bezahlung.
Bei Interesse schreiben Sie bitte an ma.gog@mail.ru
Die allgemeine Idee ist die folgende:
1. Der Expert Advisor sollte schwebende Stop- und Limit-Orders auf Fraktale platzieren (Buy-Stop, Sell-Stop, Buy-Limit, Sell-Limit), die Verfallszeit der Order sollte festgelegt werden (Stunden, Minuten).
2. Die Auftragsarten sollten umschaltbar sein (entweder Stop- und Limit-Aufträge zusammen oder getrennt: nur Stop-Aufträge, nur Limit-Aufträge),
3. Der Abstand zwischen dem zu erteilenden Auftrag und dem Fraktal sollte in Pips angegeben werden, und zwar sowohl für Stop- als auch für Limit-Aufträge.
4. StopLoss und TakeProfit sind festgelegt und werden sofort gesetzt.
5. Sie möchten einen Trailing-Stop von einem Pip haben und diesen deaktivieren.
6. Das Problem sollte gelöst werden. Aber es ist auch möglich, ein Geldmanagement zu erstellen.
7. Der Spread muss bei den Aufträgen berücksichtigt werden: (Kaufauftrag + Spread, Verkaufsauftrag - Spread)
. Kontakt: Cashinroman@yandex.ru
Kann jemand verstehen, diesen Code, warum in der Tester Pfund USD H4 funktioniert super
Und auf der Demo und auf der realen nur gießt etwas zu ändern, es sps vielleicht sieht er in der Geschichte
extern double Init_line1 = 1.9620;
extern double Init_line2 = 1.9630;
extern double Init_line3 = 1.9640;
extern double Init_line4 = 1.9650;
extern int Schritt_Zeile = 40;
extern double Lots = 1;
extern int ColUr = 2;
int i, j;
int a[4][4];//1-Kauf, 2-Verkauf, 3-Kaufstopp, 4-Verkaufsstopp
Doppelter Minilot;
datetime LetzteArbeit;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
//********************************************************************
//überprüfen, ob es offene Stellen gibt,
//drückt die Anzahl der offenen Positionen in das Array a[4][4].
bool Pred()
{
int NL; //welche Zeilen sich in der Matrix befinden
for (i=0; i<=4; i++)
for (j=0; j<=4; j++)
a[i][j]=-1;/alle in -1
for (i=0; i<OrdersTotal(); i++) //alle Aufträge umkehren
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)//Auswahl der Reihenfolge, falls nicht möglich
Pause;
if (OrderSymbol()==Symbol())//es gibt Positionen für dieses Symbol
if (Auftragskommentar()=="a1")//gibt es eine Markierung?
NL=0;
else if (OrderComment()=="a2")//ist unser Label?
NL=1;
else if (OrderComment()=="a3")//ist unser Label?
NL=2;
else if (OrderComment()=="a4")//ist unser Tag?
NL=3;
sonst
weiter;//Nein? dann weiter suchen
//wir haben unsere Aufträge, erledigen wir sie
if (OrderType()==OP_BUY)//wenn die Position BUY ist
a[NL][0]=OrderTicket();//die Nummer merken
else if (OrderType()==OP_SELL)//wenn die Position auf Verkauf steht
a[NL][1]=OrderTicket();//die Nummer merken
else if(OrderType()==OP_BUYSTOP)//wenn die Position zum Kauf ansteht
a[NL][2]=OrderTicket();//die Nummer merken
else if (OrderType()==OP_SELLSTOP)//wenn die Position zum Verkauf ansteht
a[NL][3]=OrderTicket();//die Nummer merken
}///Ende der Schleife
}
//********************************************************************
//Beispiel:
//Kontrollniveau 1,9420, aktueller Kurs 1,9277 oder 1,9537 in der Nähe des unteren Niveaus finden
//а)|1.9420-1.9277|*10000/40=3.575
//3,575-3=0,575; 0,575*40=23; 1,9277-0,0023=1,9255 nächsthöhere Stufe
//б)|1.9420-1.9537|*10000/40=2.925
// 2,925-2=0,925; 0,925*40=37; 1,9537-0,0037=1,9500 Nächstes niedriges Niveau
int init()
{
LetzteArbeit = -1;
}
//********************************************************************
int deinit()
{
zurück(0);
}
//********************************************************************
int start()
{
wenn (CurTime() - LastWork < 5)
return(0); // nicht mehr als einmal alle 5 Sekunden
LetzteArbeit = CurTime();
Pred();//alles gesammelt
Comment("a[1][1]=",a[0][0]," a[0][2]=",a[0][1]," a[1][3]=",a[0][2]," a[1][4]=",a[0][3],"\n",
"a[2][1]=",a[1][0], "a[2][2]=",a[1][1], "a[2][3]=",a[1][2], "a[2][4]=",a[1][3],"\n"
"a[3][1]=",a[2][0]," a[3][2]=",a[2][1], "a[3][3]=",a[2][2], "a[3][4]=",a[2][3],"\n"
"a[4][1]=",a[3][0]," a[4][2]=",a[3][1]," a[4][3]=",a[3][2]," a[4][4]=",a[3][3],"\n")
String-Kommentar;
double Init_line,qw,qw1,uo,w, sl, op;
for(i=0;i<ColUr;i++)//Ausführen des Arrays a[4][4]
{
//wird weiter benötigt
coment=";
wenn (i==0)
{
coment="a1";
Init_line=Init_line1;
}
sonst if(i==1)
{
coment="a2";
Init_line=Init_line2;
}
sonst if(i==2)
{
coment="a3";
Init_line=Init_line3;
}
sonst if(i==3)
{
coment="a4";
Init_line=Init_line4;
}
//Suchen Sie die nächstgelegene Ebene
w=(MathAbs(Bid-Init_line)*1/Punkt)/Step_line;//Koeffizient
wenn (Bid>=Init_line)
qw=Step_line*(w-MathFloor(w));//Anzahl der Punkte bis zur nächsten Ebene
sonst
qw=Step_line-Step_line*(w-MathFloor(w));//Anzahl der Punkte bis zur nächsten Ebene
qw1=Step_line-qw;//Anzahl der Punkte bis zur nächsten Stufe
// Comment("Line1 ",Init_line," w=",((Bid-Init_line)*1/Point)/Step_line," qw=",qw," NewLine",Bid-(qw)*Point);
if ((a[i][0]==-1)&&(a[i][1]==-1)&&(a[i][2]==-1)&&(a[i][3]==-1))//нету открытых
{
//Bestellungen aufgeben
if (qw+4>=15)// wir können auf den Verkauf warten
OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-(qw)*Point,0,Bid-Point*(qw-2*Step_line),0,0,CLR_NONE);
else //die nächstniedrigere Ebene einstellen
OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-Point*(qw+Step_line),0,Bid-Point*(qw+Step_line-2*Step_line),0,coment,0,0,CLR_NONE);
if (qw1>=15)//kann eine Wartezeit auf Kaufen setzen
OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+(qw1-4)*Point,0,Ask+Point*(qw1-4-2*Step_line),0,coment,0,0,CLR_NONE);
else// auf die nächsthöhere Ebene setzen
OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+Point*(qw1-4+Step_line),0,Ask+Point*(qw1-4+Step_line-2*Step_line),0,coment,0,0,CLR_NONE);
}
//!!!!!!!!!!!!!
sonst if (a[i][0]!=-1)// kaufenswert
{//open buy
OrderSelect(a[i][0],SELECT_BY_TICKET, MODE_TRADES);//offene Order auswählen
uo=OrderOpenPrice();//ihr Eröffnungskurs - Niveau
op=uo;
if (uo<(Ask-(qw-4)*Point))//Eröffnungskurs ist niedriger als das aktuelle Tief
//SL öffnen prüfen, ggf. ändern
if (OrderStopLoss()<(Ask-Point*(qw+4+2*Step_line)))//SL liegt weniger als 2 Stufen unter dem aktuellen Kurs
OrderModify(a[i][0],NULL,Ask-Point*(qw+4+2*Step_line),NULL,NULL,CLR_NONE);
sl=OrderStopLoss();
//Entscheiden Sie über die anstehenden
if (a[i][3]!=-1)//steht Verkaufsstopp
{
OrderSelect(a[i][3],SELECT_BY_TICKET, MODE_TRADES);//Position auf schwebend
uo=OrderOpenPrice();//Öffnungspreis - Niveau
if(uo!=sl)//(Bid-Point*(qw+2*Step_line)))//der offene Level ist gleich dem BUY-Stop
OrderModify(a[i][3],sl, sl+Point*(2*Step_line),NULL,NULL,CLR_NONE)
// OrderModify(a[i][3],Bid-Point*(qw-2*Step_line),Bid+qw*Point,NULL,NULL,NULL);
}
else if (a[i][3]==-1)//Turn to buy wurde eröffnet, sellstop sollte gesetzt werden
OrderSend(Symbol(), OP_SELLSTOP, Lots, sl,0,sl+Point*(2*Step_line),NULL,coment,0,0,CLR_NONE);
// OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-(qw+2*Step_line)*Point,0,Bid-Point*(qw),NULL,coment,0,0,0);
}
//!!!!!!!!!!!!!
else if (a[i][1]!=-1)//stand sell
{
OrderSelect(a[i][1],SELECT_BY_TICKET, MODE_TRADES);//Auswahl der offenen Order
uo=OrderOpenPrice();//Öffnungspreis - Niveau
op=uo;
if (uo>(Bid+(qw1)*Point))//Offener Preis ist höher als der aktuelle Höchststand
//SL öffnen prüfen, ggf. ändern
if (OrderStopLoss()>(Bid+Point*(qw1+2*Step_line)))//SL ist höher als 2 Levels über dem aktuellen Kurs
OrderModify(a[i][1],NULL,Bid+Point*(qw1+2*Step_line),NULL,NULL,CLR_NONE);
sl=OrderStopLoss();
//einen Aufschub nehmen
if (a[i][2]!=-1)// kostet Kaufstopp
{
OrderSelect(a[i][2],SELECT_BY_TICKET, MODE_TRADES);//Position auf schwebend
uo=OrderOpenPrice();//Öffnungspreis - Niveau
if (uo!=sl)//der offene Pegel ist gleich dem SELL-Stop
OrderModify(a[i][2],sl,sl-(2*Step_line)*Point,NULL,NULL,CLR_NONE);
// OrderModify(a[i][2],Ask+Point*(qw1-4+2*Step_line), Ask+(qw1-4)*Point,NULL,NULL,NULL);
}
else if (a[i][2]==-1)//Die Verkaufswende wurde eingeleitet, wir müssen den Kaufstopp setzen
OrderSend(Symbol(), OP_BUYSTOP, Lots, sl,0,sl-Point*(2*Step_line),NULL,0,0,CLR_NONE);
//OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+(qw1-4+2*Step_line)*Point,0,Ask+Point*(qw1-4),NULL,coment,0,0,0);
}
}
zurück (0);
}
Sehr geehrte Herren Programmierer! Ich möchte um Hilfe beim Schreiben eines EA bitten. Ich spreche noch nicht MQL. Wenn mein EA profitabel ist, bin ich bereit, meine Gewinne mit der Person zu teilen, die ihn geschrieben hat, oder Ihre Bedingungen zu beschreiben. Ich denke, es sollte rentabel sein.
Über "share the prize" - das ist würdig)
Aber es ist interessanter, "die Begriffe zu beschreiben".
Meine Bedingungen: Ich schreibe jetzt für das Geld, ich gebe nicht vor, davon zu profitieren.
Kontakte im Profil
Liebe Besucher dieser Website. Es muss ein sehr einfacher Expert Advisor geschrieben werden. Ich habe einen Vorschlag. Ich gebe Ihnen eine Bedingung, Sie geben mir den Expert Advisor. Sie werden auch in der Lage sein, meine einfache Strategie anzuwenden. Ich wäre Ihnen dankbar, wenn Sie mir erklären könnten, wie ich das Auftragsvolumen im EA ändern kann, wenn dies erforderlich ist. Ich werde die Bedingungen während der persönlichen Korrespondenz oder ICQ 300333834 oder E-Mail forexbmf@yandex.ru Andrew geben.
Wenn Sie darauf kostenlos handeln wollen (vorzugsweise real oder Demo 1-2 Monate).
Ansonsten hier: https: //www.mql5.com/ru/job
Однако выслушав условие вы поймёте, что действительно имеет смысл такая торговля.
Oktober, du hast keine Ahnung, wie viele Leute vor dir schon so ziemlich das Gleiche gesagt und sich darüber aufgeregt haben.
Sehr geehrte Website-Besucher. Es muss ein sehr einfacher EA geschrieben werden.
Siehe den Online-Assistenten für EA: http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
Unterstützung der russischen Sprache verfügbar