[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 158

 
Xaoss1990:

Hilfe, bitte... I've been struggling for days....

Wo ist der Code? Wie kann ich helfen?
 
Roger:
Wo ist der Code? Wie kann ich helfen?

Hier ist der Teil des Codes, in dem wir Geschäfte machen:

//+------------------------------------------------------------------+
//+----------------------CLOSE A POINT---------------------+
//+------------------------------------------------------------------+
if (POINT_BUY_M15 >= Strgh_UP_M15 &&& PUNKT_BUY_H1 >= Strgh_UP_H1 && PUNKT_BUY_H4 >= Strgh_UP_H4 && OrdersTotal() == 0)
{
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, 5, 0, 0, "Meine Bestellung #", 111, 0, Blue);
if(ticket < 0)
{
Print("Bestellung nicht gesetzt. Fehler - #",GetLastError());
return(0);
}
}

//+------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС-------------------------+
//+------------------------------------------------------------------+
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();

if (POINT_BUY_M15 < Strgh_UP_M15 || POINT_BUY_H1 < Strgh_UP_H1 || POINT_BUY_H4 < Strgh_UP_H4 && OrdersTotal() == 1 && Magic == 111 && OrderType( ) == 0)
{
close = 1;
}
if (close == 1)
{
if (OrderClose(OrderTicket(), lots, Bid, 5, Yellow) == true) Alert("OrderTicket() = ", OrderTicket(), ", lots = ", lots, ", Bid = ", Bid);
else Print ("Stop not set;)

}

//+------------------------------------------------------------------+
//+----------------------CONCLAIM SALE---------------------+
//+------------------------------------------------------------------+
if (POINT_SELL_M15 >= Strgh_DOWN_M15 && PUNKT_VERKAUF_H1 >= Strgh_DOWN_H1 && PUNKT_VERKAUF_H4 >= Strgh_DOWN_H4 && OrdersTotal() == 0)
{
ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, 5, 0, 0, 0, "My order #", 222, 0, Green);
if(ticket < 0)
{
Print("Order not set. Fehler - #",GetLastError());
return(0);
}
}
//------------------------------------------------Drucken der auszuwählenden Parameter----------------------------------------------------
//Drucken("Sell M15 = ", POINT_SELL_M15, ", Sell H1 = ", POINT_SELL_H1, ", Sell H4 = ", POINT_SELL_H4, ", order number = ", ticket);
//------------------------------------------------Печать параметров на выбор----------------------------------------------------

//+------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС-------------------------+
//+------------------------------------------------------------------+
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();

if (POINT_SELL_M15 < Strgh_DOWN_M15 || POINT_SELL_H1 < Strgh_DOWN_H1 || POINT_SELL_H4 < Strgh_DOWN_H4 && OrdersTotal() == 1 && Magic == 222 && OrderType( ) == 1)
{
close = 1;
}
if (close == 1)
{
OrderClose(OrderTicket(), lots, Ask, 5, Red);
}

 
Dies ist nicht der Teil des Codes, in dem ein Fehler auftreten könnte.
 
Roger:
Dies ist nicht der Teil des Codes, in dem ein Fehler auftreten könnte.

em.... und der Rest des Codes ist die Berechnung von Werten ( POINT_BUY_M15, POINT_BUY_H, POINT_BUY_H4, POINT_SELL_M15, POINT_SELL_H, POINT_SELL_H4 ), um Geschäfte zu machen, es funktioniert richtig... Ich überprüft. es ist einfach dort....

 
Wenn der Fehler hier läge, würde in den Protokollen stehen "Stop not set", aber das ist nicht der Fall.
 
Bitte beraten Sie mich. Ein Auftrag wurde durch eine bestimmte Bedingung eröffnet und durch ein Schleppnetz geschlossen. Wie kann ich erreichen, dass eine Position bei dieser Kerze nicht mehr geöffnet wird, wenn die Bedingung erfüllt ist?
 

Eine Bedingung in der init-Funktion wird geprüft:

...
extern int proc_zahlest=50;

int init() 
{
if (proc_zahlest>100)
{
Alert("Параметр proc_zahlest д.б. <100% !!!");
}
return(0);
}

Anhalten des Indikators (verhindern, dass die Startfunktion ausgeführt wird), wenn proc_zahlest>100

 
prom18:
Bitte beraten Sie mich. Ein Auftrag wurde durch eine bestimmte Bedingung eröffnet und durch ein Schleppnetz geschlossen. Wie kann ich erreichen, dass eine Position bei dieser Kerze nicht mehr geöffnet wird, wenn die Bedingung erfüllt ist?


Wenn nur ein Auftrag eröffnet werden kann, ist es einfach

start()
{
static int newbar;
if(newbar==Time[0])return(0);
if(OrdersTotal()>0)newbar=Time[0];
...
 
Roger:


Wenn nur ein Auftrag eröffnet werden kann, ist es einfach

Erläutern Sie bitte in Worten die Logik des Geschriebenen.
 
prom18:
Erläutern Sie bitte in Worten die Logik des Geschriebenen.

Wenn ein Auftrag eröffnet wird, erhält die Variable newbar den Wert des Zeitpunkts der Eröffnung des aktuellen Balkens. Bei den nächsten Ticks, bis zum neuen Balken, wird der EA blockiert. Wenn der Auftrag noch nicht abgeschlossen ist, wird der Vorgang wiederholt. Und so machen wir weiter, bis die Bestellung abgeschlossen ist. Beim nächsten Balken ist der Expert Advisor dann bereit für neue Eröffnungen.