[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 624

 
int Count=0;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion|
//+------------------------------------------------------------------+
int init()
{
Alert ("Die Funktion init() ist beim Start fehlgeschlagen");
return;
}
//+------------------------------------------------------------------+
//| expert start function|
//+------------------------------------------------------------------+
int start()
{
double Price = Bid;
Count++;
Alert("Neuer Tick ",Count," Price = ",Price);
return;
}
//+------------------------------------------------------------------+
int deinit()
{
Alert ("Deinit() triggered on unloading");
return;

}

Soweit ich verstehe, sollte in diesem Skript bei jedem neuen Geldkurs eine Meldung ...... erscheinen, aber das ist nicht der Fall ...... Was ist falsch? ...was ist zu tun?

 
i999i:
int Count=0;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion|
//+------------------------------------------------------------------+
int init()
{
Alert ("Die Funktion init() ist beim Start fehlgeschlagen");
return;
}
//+------------------------------------------------------------------+
//| expert start function|
//+------------------------------------------------------------------+
int start()
{
double Price = Bid;
Count++;
Alert("Neuer Tick ",Count," Price = ",Price);
return;
}
//+------------------------------------------------------------------+
int deinit()
{
Alert ("Deinit() triggered on unloading");
return;

}

Soweit ich verstehe, sollte in diesem Skript bei jedem neuen Geldkurs eine Meldung ...... erscheinen, aber das ist nicht der Fall ...... Was ist falsch? ...was ist zu tun?

Schalten Sie wahrscheinlich in den Terminaleinstellungen die Option"EA zum Handel zulassen" ein.
 

Gibt es eine Möglichkeit, den Stop-Loss zu ändern, aber den Take-Profit auf einer Linie zu belassen (ohne ihn zu erwähnen, d.h. er muss so bleiben, wie er vorher durch andere Funktionen gesetzt wurde)

OrderModify(OrderTicket(),0,stop_loss, ???, 0,CLR_NONE);

 
rigonich:


Hätte der Prüfer so viele Bestellungen gezählt wie der Server, wären die Daten ebenfalls mehrstellig.

Der Prüfer weist ebenso wie der Server jedem neuen Auftrag eine eindeutige Auftragsnummer (Ticket) zu, aber der Server tut dies von dem Moment an, in dem das Maklerunternehmen gegründet wurde, für alle seine Kunden und für alle Instrumente.


Verstanden, danke :)))
 
rigonich:
Wahrscheinlich haben Sie in den Terminaleinstellungen "EA den Handel erlauben".


Hilft nicht
 
i999i:

Hilft nicht

Entschuldigung - alles Klasse .......Dankeschön
 
lottamer:

Gibt es eine Möglichkeit, den Stop-Loss zu ändern, aber den Take-Profit auf einer Linie zu belassen (ohne ihn zu erwähnen, d.h. er muss so bleiben, wie er vorher durch andere Funktionen gesetzt wurde)

OrderModify(OrderTicket(),0,stop_loss, ???, 0,CLR_NONE);

OrderModify(OrderTicket(),OrderLots( ),stop_loss,OrderTakeProfit( ), 0,CLR_NONE);

Stopp, Ihr Los ist also 0.

 
Auch dieser Auftrag muss zuvor mit OrderSelect ausgewählt werden. Andernfalls kann aus dem Ticket oft nichts werden.
 
Dimka-novitsek:
Auch dieser Auftrag muss zuvor mit OrderSelect ausgewählt werden. Andernfalls kann aus dem Ticket oft nichts werden.

Ja, das Ticket wird das von Ihnen angegebene sein, aber die WerteOrderLots( ) undOrderTakeProfit( ) kann es für jede beliebige Bestellung zurückgeben.
 

Guten Morgen!

Ich kann es kategorisch nicht herausfinden - die Bedingungen für den Trailing-Stop funktionieren nicht.

//***************************************   
 
 bool nahodka=false;
  
 if (OrderSelect(tacket, SELECT_BY_TICKET , MODE_HISTORY)) 
 if (OrderTakeProfit( )-3*Point<profit&&OrderTakeProfit( )+3*Point>profit) nahodka=true;     // Находим ордер, сработавший именно по тейкпрофиту 
   
 if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )<Bid-treylingstop*Point ){ Print ("втораямодифи    " );
 OrderModify(  tucket, OrderOpenPrice(), Bid-treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
 if (BUY == 0) {perenos=false;srabotka=false;nahodka=false;} 
 
 
 //*************************************** 
 
 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
               
               //SELL

Die Bestellung wird also sofort weggenommen, wenn sie noch nicht in der Historie steht, was ich überhaupt nicht verstehe!

//***************************************   
 
  nahodka=false;
 
 for (i=0; i<=OrdersHistoryTotal(); i++) {
 if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
 if (OrderSymbol()!=Symbol())continue; 
 if (OrderMagicNumber() != 450) continue; 
 if (tocket==OrderTicket()) 
 if (OrderTakeProfit( )-3*Point<profitsell&&OrderTakeProfit( )+3*Point>profitsell) nahodka=true;}
     // Находим ордер, сработавший именно по тейкпрофиту 
 
 
  
 if(nahodka){if (OrderSelect(tecket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )>Bid+treylingstop*Point ){ Print ("четвёртаямодифи    " );
 OrderModify(  tecket, OrderOpenPrice(), Bid+treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
 for ( i = OrdersTotal() - 1; i >= 0; i--)

Und das ist die Situation ist besser! Mit diesem Trick wird der Auftrag zumindest dann korrigiert, wenn er bereits in der Historie steht.

Aber einmal in fünf oder zehn Fällen nimmt nahodka nicht den Werttrue an, und eine weitere Änderung findet nicht statt!

Grund der Beschwerde: