[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 1095

 
Ich habe nicht sofort ein EA ohne Indikatoren zu schreiben, gibt es keine Indikatoren, nur Aufträge zu kaufen und zu verkaufen und so weiter--- und dann die Perioden, die im Tester geändert haben und das Endergebnis ist immer noch nichts, was ich nicht verstehe
 
5drakon:
Ich habe nicht sofort ein EA ohne Indikatoren zu schreiben, gibt es keine Indikatoren, nur Aufträge zu kaufen und zu verkaufen und so weiter--- und dann die Perioden, die im Tester geändert haben und das Endergebnis ist immer noch nichts, was ich nicht verstehe

Ohne den Expert Advisor selbst kann man nichts sagen. Das ist nur eine Vermutung.
 

Was sollte ich mit Ilan6 tun, damit er anfängt zu handeln? Ab wie viel Geld fängt es an zu funktionieren und funktioniert es überhaupt mit einem Cent?

 
5drakon:
Ich habe nicht sofort ein EA ohne Indikatoren zu schreiben, gibt es keine Indikatoren, nur Aufträge zu kaufen und zu verkaufen und so weiter--- und dann die Perioden, die im Tester geändert haben und das Endergebnis ist immer noch nichts, was ich nicht verstehe

Ja, wir sollten uns den Code selbst ansehen. Verfügt er nicht über eine Art Strategie, auf deren Grundlage er Aufträge öffnet und schließt?
 

Können Sie mir sagen, wo der Fehler liegt? Wenn es einen Marktauftrag zum Verkauf unseres Finanzinstruments gibt, schließen wir ihn, und wenn es keinen Kaufauftrag gibt, eröffnen wir einen Kaufauftrag. Hier ist alles normal mit dem Schließen, aber es öffnet sie nicht einmal, sondern bei jedem Ticken.

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

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------

 
kolyango:

Können Sie mir sagen, wo der Fehler liegt? Wenn es einen Marktauftrag zum Verkauf unseres Finanzinstruments gibt, schließen wir ihn, und wenn es keinen Kaufauftrag gibt, eröffnen wir einen Kaufauftrag. Hier ist alles normal mit dem Schließen, aber es öffnet sie nicht einmal, sondern bei jedem Ticken.

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

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
sells++;
}
}
if (sells==0)
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
//--------------------------------------------------------------------------------------------


Oder ist es besser, dies zu tun? Wenn es keine Verkaufsaufträge gibt, wird kein Kaufauftrag eröffnet.

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------

 

Regel für die Ausführung der for-Anweisung


Wenn Sie die Kontrolle an die for-Anweisung übergeben, führen Sie Expression_1 aus. Während die Bedingung der for-Anweisung wahr ist: Übergeben Sie die Kontrolle an die erste Anweisung des Schleifenkörpers, und nachdem alle Anweisungen des Schleifenkörpers ausgeführt wurden, führen Sie Ausdruck_2 aus und übergeben Sie die Kontrolle an den Kopf, um zu prüfen, ob die Bedingung wahr ist. Wenn die Bedingung der for-Anweisung falsch ist: Übergeben Sie die Kontrolle an die Anweisung, die auf die for-Anweisung folgt.

Sagen Sie mir: ein Tick ist gekommen, die Bedingung des for-Operators ist wahr, die Kontrolle wird weitergegeben - all dies wird während eines Ticks passieren, d.h. alle diese Operatoren werden während eines Ticks ausgeführt oder nicht.

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------

Oder welche Operatoren werden genau während dieses Ticks ausgeführt? Alle der oben genannten oder welche werden beim nächsten Tick ausgeführt? Erklären Sie...

 
kolyango:

Regel für die Ausführung der for-Anweisung


Wenn Sie die Kontrolle an die for-Anweisung übergeben, führen Sie Expression_1 aus. Während die Bedingung der for-Anweisung wahr ist: Übergeben Sie die Kontrolle an die erste Anweisung des Schleifenkörpers, und nachdem alle Anweisungen des Schleifenkörpers ausgeführt wurden, führen Sie Ausdruck_2 aus und übergeben Sie die Kontrolle an den Kopf, um zu prüfen, ob die Bedingung wahr ist. Wenn die Bedingung der for-Anweisung falsch ist: Übergeben Sie die Kontrolle an die Anweisung, die auf die for-Anweisung folgt.

Sagen Sie mir: ein Tick ist gekommen, die Bedingung des for-Operators ist wahr, die Kontrolle wird weitergegeben - all dies wird während eines Ticks passieren, d.h. alle diese Operatoren werden während eines Ticks ausgeführt oder nicht.

Oder welche Operatoren werden genau während dieses Ticks ausgeführt? Alle der oben genannten oder welche werden beim nächsten Tick ausgeführt? Erklären Sie...


Die Funktion start() wird ausgeführt, wenn der erste Tick eintrifft. Wenn andere Ticks eintreffen, während die Funktion läuft, werden sie übersprungen.

Die Startfunktion wird entsprechend ihrer Logik vollständig ausgeführt

 
kolyango:

Regel für die Ausführung von for-Anweisungen


Wenn die Bedingung der for-Anweisung wahr ist: Übergeben Sie die Kontrolle an die erste Anweisung des Schleifenkörpers, und nachdem alle Anweisungen des Schleifenkörpers ausgeführt wurden, führen Sie Ausdruck_2 aus und übergeben Sie die Kontrolle an den Kopf, um zu prüfen, ob die Bedingung wahr ist. Wenn die Bedingung der for-Anweisung falsch ist: Übergeben Sie die Kontrolle an die Anweisung, die auf die for-Anweisung folgt.

Sagen Sie mir: ein Tick ist gekommen, die Bedingung des for-Operators ist wahr, die Kontrolle wird weitergegeben - all dies wird während eines Ticks passieren, d.h. alle diese Operatoren werden während eines Ticks ausgeführt oder nicht.

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------

Oder welche Operatoren werden genau während dieses Ticks ausgeführt? Alle der oben genannten oder welche werden beim nächsten Tick ausgeführt? Erklären Sie...


Ich habe es herausgefunden. Alle Operatoren werden ausgeführt, wenn die Bedingung erschöpft ist.
 
Wie kann ich diesen Code dazu bringen, vor dem Kauf zu prüfen, ob bereits eine Kaufbestellung vorliegt oder nicht? Wenn es keine Marktkaufaufträge gibt, dann nur dann den Kauf ausführen?