Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 871

 

Was mache ich falsch? m5 schaltet problemlos, aber nicht weiter

extern string helper111="Настройки Helper";//Helper
extern bool helperTRUE=TRUE;        //Вкл/Выкл Helper
extern bool timeM1=TRUE;            //Переключения на М старт когда ордера все закрыты
extern int helper_period=PERIOD_M5; //Периуд М старт в минутах
extern int helper_period0=PERIOD_H1;//Базовый таймфрейм работы советника
extern int order_period1=6;         //Колво ордеров для переключения на Time 1
extern int helper_period1=PERIOD_D1;//Time 1 в минутах
extern int order_period2=8;         //Колво ордеров для переключения на Time 2
extern int helper_period2=PERIOD_W1;//Time 2 в минутах


int helperrr()
{
   if(helperTRUE==TRUE) {  
   if(timeM1==TRUE && NumberOfPositions()==0) ChartSetSymbolPeriod(0, NULL, helper_period);
   else {
   if(((NumberOfPositions1()>=0 && NumberOfPositions1()<order_period1)
   || (NumberOfPositions1()>=0 && NumberOfPositions2()<order_period1)
   || (NumberOfPositions1()>=0 && NumberOfPositions3()<order_period1)) && _Period != helper_period0)
   ChartSetSymbolPeriod(0, NULL, helper_period0);
   if((NumberOfPositions1()>=order_period1 && NumberOfPositions1()<order_period2 && OrderMagicNumber()==MagicNumber_1)
   || (NumberOfPositions2()>=order_period1 && NumberOfPositions2()<order_period2 && OrderMagicNumber()==MagicNumber_2)
   || (NumberOfPositions3()>=order_period1 && NumberOfPositions3()<order_period2 && OrderMagicNumber()==MagicNumber_3))
   ChartSetSymbolPeriod(0, NULL, helper_period1);
   if((NumberOfPositions1()>=order_period2 && OrderMagicNumber()==MagicNumber_1)
   || (NumberOfPositions2()>=order_period2 && OrderMagicNumber()==MagicNumber_2)
   || (NumberOfPositions3()>=order_period2 && OrderMagicNumber()==MagicNumber_3))
   ChartSetSymbolPeriod(0, NULL, helper_period2);
   }
   }
   return(0);
}
 
fxsaber:

Ich habe keine Handelsinstrumente wie den Dollar-Index usw. (Indikatoren?) gefunden.

sie nicht mit ihnen handeln dürfen, wie wird sich Ihr Code dann verhalten?

 
Igor Makanu:

Ich habe keine Handelsinstrumente wie den Dollar-Index usw. (Indikatoren?) gefunden.

der Handel mit ihnen verboten ist, wie wird sich Ihr Code dann verhalten?

Der gefälschte OrderSend eines EA erlaubt es Ihnen nicht immer, seine Einstellungen zu bestimmen.


Der von mir zur Verfügung gestellte Code zeigt die Einstellungen eines jeden EA, unabhängig von Symboleigenschaften und anderen. Führen Sie zum Beispiel einen EA und anschließend dieses Skript auf demselben Diagramm aus

// Скрипт показывает, в каком режиме Long/Short запущен советник на данном чарте.
void OnStart()
{
  Alert(LongShortToString());
}
 
fxsaber:

Fake OrderSend von einem EA zeigt nicht immer seine Einstellungen an.


Der von mir zur Verfügung gestellte Code zeigt die Einstellungen eines jeden EA, unabhängig von Symboleigenschaften und anderen. Führen Sie zum Beispiel einen EA und anschließend dieses Skript auf demselben Diagramm aus

geprüft, es funktioniert, aber

1. in der Diskussion https://www.mql5.com/ru/forum/214590/page6#comment_11947599

der Code sollte durch return(INIT_SUCCEEDED); ersetzt werden - ich habe es versucht und nicht verstanden, wo der EA fehlte ))

2. ich verstehe nicht, warum, wenn ich die EA-Eigenschaften auswähle und ein anderes Kontrollkästchen setze, die Meldung nicht wieder erscheint, wenn ich die TFs wechsle, ist alles normal

Библиотеки: Expert
Библиотеки: Expert
  • 2019.04.23
  • www.mql5.com
Expert: Автор: fxsaber...
 
fxsaber:

Fake OrderSend von einem EA zeigt nicht immer seine Einstellungen an.


Der von mir zur Verfügung gestellte Code zeigt die Einstellungen eines jeden EA, unabhängig von Symboleigenschaften und anderen. Führen Sie zum Beispiel einen EA und anschließend dieses Skript auf demselben Diagramm aus

Ist es möglich, Ihren Code in den EA einzufügen?

int testTicket=OrderSend(Symbol(),OP_SELL,0.01,0,3,0,0,"Sell Try",1,0,CLR_NONE);
if (GetLastError() == 4111) testLONG_SHORT="Long Only Mode"; 
testTicket=OrderSend(Symbol(),OP_BUY,0.01,0,3,0,0,"Buy Try",1,0,CLR_NONE); 
if (GetLastError() == 4110) testLONG_SHORT="Short Only Mode";

Mit diesem Code werden endlos Long- und Short-Orders auf xauusd eröffnet

 
Lomonosov1991:

Kann ich Ihren Code zu meinem EA hinzufügen?

Ja.


Forum für Handel, automatisierte Handelssysteme und Strategietests

Alle MQL4 und MQL5 Anfänger Fragen, Hilfe und Diskussion über Algorithmen und Codes

Lomonosov1991, 2019.06.04 19:01

int testTicket=OrderSend(Symbol(),OP_SELL,0.01,0,3,0,0,"Sell Try",1,0,CLR_NONE);
if (GetLastError() == 4111) testLONG_SHORT="Long Only Mode"; 
testTicket=OrderSend(Symbol(),OP_BUY,0.01,0,3,0,0,"Buy Try",1,0,CLR_NONE); 
if (GetLastError() == 4110) testLONG_SHORT="Short Only Mode";

Mit diesem Code werden endlos Long- und Short-Orders auf xauusd eröffnet

Die Idee dahinter ist, dass Sie genau null Volumen benötigen.
 
fxsaber:

Ja.


Die Idee dahinter ist, dass Sie genau null Volumen benötigen.
Er eröffnet 0,01 Lots ohne Volumen.
int testTicket=OrderSend(Symbol(),OP_SELL,0,0,3,0,0,"Sell Try",1,0,CLR_NONE);
if (GetLastError() == 4111) testLONG_SHORT="Long Only Mode"; 
testTicket=OrderSend(Symbol(),OP_BUY,0,0,3,0,0,"Buy Try",1,0,CLR_NONE); 
if (GetLastError() == 4110) testLONG_SHORT="Short Only Mode";

und das klappt überhaupt nicht.

int testTicket=OrderSend(Symbol(),OP_SELL,0,0,0,0,0,"Sell Try",1,0,CLR_NONE);
if (GetLastError() == 4111) testLONG_SHORT="Long Only Mode"; 
testTicket=OrderSend(Symbol(),OP_BUY,0,0,0,0,0,"Buy Try",1,0,CLR_NONE); 
if (GetLastError() == 4110) testLONG_SHORT="Short Only Mode";





 
Igor Makanu:

geprüft, es funktioniert, aber

1. in der Diskussion auf https://www.mql5.com/ru/forum/214590/page6#comment_11947599

Ich sollte den Code durch return(INIT_SUCCEEDED); ersetzen - ich habe es versucht und nicht verstanden, wo der Expert Advisor fehlte ))

Ich habe in diesem Beispiel absichtlich FAILED angegeben, damit ich es später nicht manuell entfernen muss.

2. ich verstehe nicht, warum, wenn ich die EA-Eigenschaften auswähle und ein anderes Kontrollkästchen setze, die Meldung nicht wieder erscheint, wenn ich die TFs wechsle, ist alles normal

Beim Wechsel von Long/Short gibt es keinen OnDeinit/OnInit-Aufruf.

 
Ich verstehe nicht, wie man es ausführt((
Dateien:
 
fxsaber:

Kein OnDeinit/OnInit-Aufruf beim Wechsel von Long/Short.

seltsames Verhalten, normalerweise wird OnIniT() nach dem Aufruf des Einstellungsfensters ausgeführt.


Lomonossow1991:
Ich verstehe nicht, wie man es ausführt((

das Muster anhängen, entpacken und in Ordnern verstreuen

Dateien:
MQL4.zip  5 kb
Grund der Beschwerde: