[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 87

 
Mathemat:

Tut mir leid, aber es steht definitiv in den Annalen. Unwissenheit über die englische Sprache ist keine Entschuldigung.

Ich weiß ehrlich gesagt nicht, wie hoch der EURUSD-Spread am Mikro ist. Sie sind wahrscheinlich aus diesem Forum verbannt. Diese Mistkerle lassen sich immer etwas einfallen, um dich fernzuhalten.

Ich habe es geschafft, mich anzumelden, vielen Dank.
 

Hallo, bitte helfen Sie mir bei einem, ich glaube elementaren, Punkt.

int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,0,0);
Alert(GetLastError());
return;
}

Das Skript öffnet einen Marktauftrag und alles ist in Ordnung. Aber wenn ich einen beliebigen Wert für SL oder TP einstelle, erhalte ich die Fehlermeldung "Wrong Stop".

int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,Bid-50*Point,Bid+50*Point);
Alert(GetLastError());
return;
}

Dieser Code funktioniert nicht mehr. Was ist los? Ich kann es nicht herausfinden...

int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,1.31845,1.40000);
Alert(GetLastError());
return;
}

Und es funktioniert auch nicht, wenn ich numerische Werte für Stop und Profit eingebe. Der Mindestabstand zwischen Auftrag und Stoppauftrag ist in Ordnung.

 

Liebe Fachleute! Ich habe eine Frage. Ich habe einen EA, der nach mehreren Kriterien handelt. Wie kann ich ihn dazu bringen, Aufträge separat zu modifizieren? Zum Beispiel habe ich zwei KAUF-Aufträge durch verschiedene Signale eröffnet, ein Break-Even-Level ist 90pp mit 40pp-Schritten, ein anderer ist 50pp mit 50pp-Schritten. ich konnte es nicht tun. Da ich es bereits ausprobiert habe, habe ich gesehen, wie viele Signale ich erhalten habe, und ich weiß nicht, wie ich sie nutzen soll. Vielen Dank im Voraus!

 
azik1306:

Liebe Fachleute! Ich habe eine Frage. Ich habe einen EA, der nach mehreren Kriterien handelt. Wie kann ich ihn dazu bringen, Aufträge separat zu modifizieren? Zum Beispiel habe ich zwei KAUF-Aufträge durch verschiedene Signale eröffnet, ein Break-Even-Level ist 90pp mit 40pp-Schritten, ein anderer ist 50pp mit 50pp-Schritten. ich konnte es nicht tun. Da ich es bereits ausprobiert habe, habe ich gesehen, wie viele Signale ich erhalten habe, und ich weiß nicht, wie ich sie nutzen soll. Ich habe es bereits ausprobiert und habe keine Ahnung, wie ich es benutzen soll.

-Es ist möglich, Trades durch verschiedene Signale mit unterschiedlichen Magic-Nummern zu eröffnen.

-Es ist möglich, "Markierungen" (z. B. die gleiche Ebene der Schleppnetz) in das Kommentarfeld bei der Eröffnung von Geschäften zu setzen und dann zu analysieren

ohne den Code zu Ihrer Frage zu sehen, verstehe ich nicht ganz, was genau Sie separat tun wollen

 

Der Code sieht ungefähr wie folgt aus:

for( int c=1; c<=OrdersTotal(); c++) // Orderschleife
{
OrderSelect(c-1,SELECT_BY_POS); // Wenn es eine weitere
// Orderanalyse:
if(OrderMagicNumber()<1000)

if (R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,Blue);
return;
}
if (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue);
return;
}
if (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue);
return;
}
if (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue);
return;
}
return;
}
//--------------------------------------------------------------------

for(c=1; c<=OrdersTotal(); c++) // Orderschleife
{
OrderSelect(c-1,SELECT_BY_POS); // Wenn es eine weitere
// Orderanalyse:
if (OrderMagicNumber()>1000)
if (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
if (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
if (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
if (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
return;
}

//--------------------------------------------------------------------
// Auftragswerte
RefreshRates(); // Daten aktualisieren
Min_Lot=MarketInfo(Symb,MODE_MINLOT); // Min. Lots
Free =AccountFreeMargin(); // Freie Mittel
One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// Wert von 1 Lot
Step =MarketInfo(Symb,MODE_LOTSTEP); // Step change size

if (Lots > 0) // Wenn Lots gesetzt sind, dann
Lts =Lots; // mit ihnen arbeiten
else // % freie Mittel
Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// Zu öffnen

if(Lts < Min_Lot) Lts=Min_Lot; // Nicht weniger als Minimum
if(Lts*One_Lot > Free) // Lots teurer als Free
{
Alert(" Nicht genug Geld ", Lts," Lots");
return; // Exit start()
}
//--------------------------------------------------------------- 8 --
// Eröffnen von Aufträgen

{
if (Total<2 && Opn_B==true && B==false)
{
// Kriterium zur Eröffnung eines Kaufauftrags. Buy
RefreshRates(); // Daten aktualisieren
SL=Bid - New_Stop(StopLoss)*Point; // Berechnung von SL open.
TP=Bid + New_Stop(TakeProfit)*Point; // Berechnung von TP open.
Alert("Attempting to open Buy. Waiting for reply...");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP,NULL,y);//Open Buy
if (Ticket > 0) // It worked :)
{
Alert ("Opened Buy order ",Ticket);
B=true;
S=false;
Y=OrderMagicNumber();
R=1;
return; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Fehlerbehandlung
continue; // Erneuter Versuch
// Beenden start()
}
if (Gesamt<2 && Opn_S==true && S==false) // Offene Aufträge. none +
{
Sleep(10000); // open Sell crit. Sell
RefreshRates(); // Daten aktualisieren
SL=Ask + New_Stop(StopLoss)*Point; // Berechnung von SL open.
TP=Ask - New_Stop(TakeProfit)*Point; // Berechnung von TP open.
Alert("Attempting to open Sell. Waiting for reply...");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP,NULL,y);//Open Sel
if (Ticket > 0) // It worked :)
{
Alert ("Sell order opened ",Ticket);
S=true;
B=false;
Y=OrderMagicNumber();
R=2;
return; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Fehlerbehandlung
continue; // Wiederholen
// Beenden start()
}

if (Gesamt<2 && Opn_B1==true && B1==false)
{
RefreshRates(); // Daten aktualisieren
SL1=Bid - New_Stop1(StopLoss1)*Point; // SL offen berechnen
TP1=Bid + New_Stop1(TakeProfit1)*Point; // Berechnung des TP open.
Alert("Attempting to open Buy. Waiting for reply...");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL1,TP1,NULL,x);//Open Buy
if (Ticket > 0) // Es hat funktioniert :)
{
Alert ("Opened Buy order ",Ticket);
B1=true;
S1=false;
X=OrderMagicNumber();
Z=3;
return; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Fehlerbehandlung
continue; // Erneuter Versuch
// Beenden start()
}
if (Gesamt<2 && Opn_S1==true && S1==false) // Offene Aufträge. none +
{
Sleep(10000); // open Sell crit. Sell
RefreshRates(); // Daten aktualisieren
SL1=Ask + New_Stop1(StopLoss1)*Point; // Berechnung der SL-Eröffnung.
TP1=Ask - New_Stop1(TakeProfit1)*Point; // Berechnung der TP-Eröffnung.
Alert("Attempting to open Sell. Waiting for reply...");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL1,TP1,NULL,x);//Open Sel
if (Ticket > 0) // It worked :)
{
Alert ("Sell order open ",Ticket);
S1=true;
B1=false;
X=OrderMagicNumber();
Z=4;
return; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Fehlerbehandlung
continue; // Retry
// Exit start()
}
break; // Exit while
}

 
Habe sowohl orderselect als auch majik ausprobiert, EA verwechselt Aufträge
 
azik1306:

Der Code sieht ungefähr so aus:


Hängen Sie solche breiten Codes mit einer Datei an, oder zumindest mit SRC (auswählbar in der oberen Bearbeitungsleiste), weil es für das Auge ermüdend ist, solche Zeilen zu lesen.
 
azik1306:

Der Code sieht ungefähr wie folgt aus:

for( int c=1; c<=OrdersTotal(); c++) // Auftragsschleife
{
OrderSelect(c-1,SELECT_BY_POS); // Wenn es einen nächsten
// Auftragsanalyse:
if(BestellMagischeZahl()<1000)
if(R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,Blue);
Rückkehr;
}
if (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue);
Rückkehr;
}
if (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue);
Rückkehr;
}
if (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue);
Rückkehr;
}
Rückkehr;
}
//--------------------------------------------------------------------
// Im Prinzip brauchen Sie nichts weiter zu schreiben: es wird sowieso nicht ausgeführt

for(c=1; c<=OrdersTotal(); c++) // Auftragsschleife

{
OrderSelect(c-1,SELECT_BY_POS); // Wenn es einen nächsten
// Auftragsanalyse:
wenn (BestellMagischeZahl()>1000)
wenn (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
Rückkehr;
}

if (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
Rückkehr;
}
if (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
Rückkehr;
}
if (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
Rückkehr;
}
Rückkehr ; // Aber "sicherheitshalber" gibt es auch einen "Testschuss" ;)
}

........ Nichts anderes zählt .......

//

//--------------------------------------------------------------------
// Wert bestellen

 
Danke, ich werde es gleich ausprobieren.
 
Der Code wurde korrigiert, aber der EA will nicht jeden Auftrag einzeln ansprechen
Grund der Beschwerde: