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

 
wolf05632:

Wie kann die Ausführung des Indikators gestoppt werden ...if proc_zahlest>100


int start()
{if(proc_zahlest>100)return(0);
...
return(0);}
 
wolf05632:

... Und noch eine Frage: Wie sollte die OBJ_TEXT-Zeitkoordinate aussehen, damit der Text RECHTS von der Nullkerze steht?

datetime t=Time[0]+Shift*Period()*60;//Shift -- положительное целое число.
 
granit77:
Gesetzt:

eurodollar1981 09.09.2011 10:37
Hallo! Könnten Sie mir sagen, wie man in mt4, um eine Bestellung mit voreingestellten stoploss und Take Profit durch Drücken einer Taste zu kaufen verschreiben?


Zwei Schlüssel - ist das viel? Wenn -- nein, schreiben Sie ein entsprechendes Skript, dessen Ausführung auf den "Hotkey" gesetzt wird.

Terminal --> Navigator --> Skripte --> Ihr Skript --> Rechtsklick --> Hotkey festlegen.

 

Roger:

Xaoss1990:

Roger:
Dies ist nicht der Teil des Codes, in dem ein Fehler auftreten könnte.
Em.... und der Rest des Codes ist die Berechnung der Werte ( POINT_BUY_M15, POINT_BUY_H, POINT_BUY_H4, POINT_SELL_M15, POINT_SELL_H, POINT_SELL_H4 ), um Trades zu machen, es funktioniert richtig... Ich habe es überprüft... es ist einfach dort....
Wenn der Fehler hier läge, würde das Protokoll sagen "Stop not set", aber das ist nicht der Fall.

Der Fehler liegt genau in diesem Code. Er schließt BUY, dann wählt er einen Auftrag aus, der nicht mehr existiert, und schließt SELL, der nie existiert hat. Ich glaube, ich habe uns den Fehler aufgezeigt. Das wird nicht schwer zu verstehen sein.

Ich begann, MQL in einem Lehrbuch zu studieren. Es gibt genügend Beispiele, und sie sind alle intelligent konstruiert. Einige der in diesen Beispielen verwendeten Konstruktionen verwende ich immer noch in meinen eigenen Entwicklungen.

 
MaxZ:

Der Fehler liegt genau in diesem Code. Er schließt BUY, dann wählt er einen Auftrag aus, der nicht mehr existiert, und schließt SELL, der nie existiert hat. Ich denke, ich habe den Fehler aufgezeigt. Das wird nicht schwer zu verstehen sein.

Ich begann, MQL in einem Lehrbuch zu studieren. Es gibt genügend Beispiele, und sie sind alle intelligent konstruiert. Einige dieser Beispiele verwende ich immer noch in meinen Entwicklungen.


Einverstanden. Empfohlen:
datetime OrderCloseTime( )
Gibt die Schlusszeit für den ausgewählten Auftrag zurück. Nur geschlossene Aufträge haben eine Schlusszeit, die nicht 0 ist. Offene oder schwebende Aufträge haben eine Schlusszeit von 0.
Die Bestellung muss mit OrderSelect() vorausgewählt werden.
 
Roll:


Igitt... Ich danke Ihnen!
 

Leute, helft mir, ich habe mich verirrt. Ich mache einen Indikator, der die Informationen von verschiedenen anderen Indikatoren aus unterschiedlichen Zeitrahmen als Textobjekte ausgeben soll. Zum Beispiel ADX. Ich mache drei iADX:

 f0 = iADX(NULL,PERIOD_M30,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_M30,14,PRICE_CLOSE,MODE_MINUSDI,0);
 f1 = iADX(NULL,PERIOD_H1,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_H1,14,PRICE_CLOSE,MODE_MINUSDI,0); 
 f2 = iADX(NULL,PERIOD_H4,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_H4,14,PRICE_CLOSE,MODE_MINUSDI,0); 

Ich teste auf H4, nur ein ADX, die auf H4 ist, die anderen beiden geben einen konstanten Wert. Bitte um Hilfe.

 
vitali_yv:

Leute, helft mir, ich bin etwas verwirrt. Ich mache einen Indikator, der die Informationen von verschiedenen anderen Indikatoren aus unterschiedlichen Zeitrahmen als Textobjekte ausgeben soll. Zum Beispiel ADX. Ich mache drei iADX:

Ich teste auf H4, nur ein ADX, die auf H4 ist, die anderen beiden geben einen konstanten Wert. Bitte um Hilfe.


Versuchen Sie es mit M30 - wenn im Code ausdrücklich Zeiträume vorgeschrieben sind, sollte es funktionieren.
 
vitali_yv:

Leute, helft mir, ich bin verwirrt. Ich mache einen Indikator, der die Informationen von verschiedenen anderen Indikatoren aus unterschiedlichen Zeitrahmen als Textobjekte ausgeben soll. Zum Beispiel ADX. Ich mache drei iADX:

Ich teste auf H4, nur ein ADX, die auf H4 ist, die anderen beiden geben einen konstanten Wert. Bitte um Hilfe.

Ich zweifle nicht daran, dass meine Handschrift korrekt ist, und ich habe keine Risse.

Oder Sie geben falsch aus, was nur Herr Telepath mit Sicherheit wissen kann...

 
MaxZ:

Der Fehler liegt genau in diesem Code. Er schließt BUY, dann wählt er einen Auftrag aus, der nicht mehr existiert, und schließt SELL, der nie existiert hat. Ich denke, ich habe den Fehler aufgezeigt. Das kann nicht schwer zu verstehen sein.

Bevor ein Auftrag geschlossen wird, prüft der EA die magische Zahl des Auftrags, die für Kauf- und Verkaufsaufträge unterschiedlich ist. Ein und derselbe Auftrag kann also nicht sowohl als Kauf als auch als Verkauf abgeschlossen werden.

Hier ist der Code:

//+-----------------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС ДЛЯ BUY-------------+
//+-----------------------------------------------------------------------------+

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();

if (OrdersTotal() == 1 && Magic == 111 && OrderType( ) == 0)
{
if (POINT_BUY_M15 < Strgh_UP_M15 || POINT_BUY_H1 < Strgh_UP_H1 || POINT_BUY_H4 < Strgh_UP_H4)
{
close = 1;
}
}
if (close == 1)
{
OrderClose(OrderTicket(), lots, Bid, 5, Yellow);
}

//+-----------------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС ДЛЯ SELL-------------+
//+-----------------------------------------------------------------------------+

OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();

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