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

 
jarikn:
Danke, ich werde es mir ansehen.

Und vielen Dank, Sie haben mich an ein altes System erinnert, das sich als nützlich erwiesen hat. Ich muss sie mir in Ruhe notieren und auf dem aktuellen Markt testen.

 
jarikn:
Hallo zusammen. Ich bin neu im Programmieren.
Ich habe einen einfachen Expert Advisor geschrieben und muss ihm nun die folgende Bedingung hinzufügen.
Wenn ein Stop-Loss durch einen Kaufauftrag ausgelöst wird, dann eröffnen wir einen Verkaufsauftrag.
Bitte helfen Sie bei diesem Code

Weitere Optionen:

1. Wenn Sie einen Kaufauftrag eröffnen, setzen Sie eine SellStop-Order auf der Höhe des Stop Loss des Kaufauftrags. Dann wird Ihr Wunsch vom Server erfüllt. Aber in außergewöhnlich seltenen, aber richtigen Situationen und nicht :-)

2. überhaupt keinen Stop-Loss zu setzen, sondern einen SellStop von doppeltem Volumen. Auch dies wird vom Server schnell verarbeitet. Am Ende des Tages oder wenn die Marge erschöpft ist, müssen Sie einen UnLock ausführen, der die entgegengesetzten Aufträge gegenseitig schließt (CloseBy).

Es gibt jedoch noch eine weitere Nuance: Stop-Order (und auch Stop-Loss) funktionieren möglicherweise nicht. Und das ist ziemlich oft der Fall.
Das heißt, bei einem "Kampf"-Roboter müssen wir das noch einmal überprüfen.
Общие принципы - Торговые операции - Справка по MetaTrader 5
Общие принципы - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Перед тем как приступить к изучению торговых функций платформы, необходимо создать четкое представление об основных терминах: ордер, сделка и позиция. — это распоряжение брокерской компании купить или продать финансовый инструмент. Различают два основных типа ордеров: рыночный и отложенный. Помимо них существуют специальные ордера Тейк Профит...
 
Vladimir Simakov:

Er schreibt, dass man eine wchar_t Entität nicht mit einem const char* Wert initialisieren kann

Wenn Sie sie nicht verstehen, fehlt es Ihnen leider an den Grundlagen der Sprache. Es ist noch zu früh für Sie, eine DLL zu schreiben, insbesondere für eine so spezielle Sprache wie mql. Beginnen Sie mit den Grundlagen.

Ich weiß nicht, was sie Ihnen raten. Es wird nie einen guten Zeitpunkt für diesen Moment des Lernens von Bibliotheken geben, entweder jetzt oder nie.

 
Maxim Kuznetsov:

2. keinen Stop-Loss setzen, sondern einen SellStop von doppeltem Volumen setzen. Auch dies wird vom Server schnell erledigt. Am Ende des Tages oder wenn die Marge erschöpft ist, müssen Sie einen UnLock ausführen, der die entgegengesetzten Aufträge gegenseitig schließt (CloseBy).

Wir sollten mit CloseBy vorsichtiger sein, da nicht alle Maklerunternehmen diese Funktion unterstützen.

 
Da ich kein Programmierer bin, kann ich die einfachste Frage nicht lösen: Wie bindet man den Nullbalken an die Zeit, Minuten :00, Stunden 00:,01:,02: usw. Kann mir jemand einen Tipp geben?
 
Creativ:
Da ich kein Programmierer bin, kann ich die einfachste Frage nicht lösen: Wie bindet man den Nullbalken an die Zeit, Minuten :00, Stunden 00:,01:,02: usw. Kann das jemand vorschlagen?

Hierfür gibt es eine Funktion.

iTime(символ,таймфрейм, номер бара)

Sie gibt die Taktzeit zurück.

 

Hallo zusammen. Leute, bitte helft mir. Ich bin neu in der Programmierung.
Wie man dies in MQL4-Code erreicht.
Ich drücke zum Beispiel den Knopf A und ein Cursor <Screenshot_2> erscheint auf einem Diagramm wie diesem.
Für die Funktion "Rechteck zeichnen" <Screenshot_1> gibt es keinen Hotkey, wie man diese Funktion erhält.

Bildschirmfoto_1

Bildschirmfoto_1

Bildschirmfoto_2.

Bildschirmfoto_2

Ich danke Ihnen.

 
Leute, helft mir bitte mit dem Expert Advisor. Ich habe genug von.... Ich kann es nicht reparieren, es gibt nur Fehler.
Das ist die Quintessenz.
Es funktioniert mit dem Tma-Messe-Indikator.
1) Sobald der Kurs über der oberen Linie liegt, wird ein Verkaufsauftrag eröffnet, liegt der Kurs unter der unteren Linie, wird ein Kaufauftrag eröffnet.
Ich habe das alles gemacht, aber der Punkt ist,
2) Sobald ich einen Stop-Loss ausgelöst habe, öffnet eine Order die gleiche Order! Wie kann ich diesen Fehler beheben?
3) Der Auftrag wird nicht geschlossen, wenn der Kurs die gegenüberliegende Linie überschreitet! Es scheint zu funktionieren, tut es aber nicht. Er schließt am Stop Loss oder Take Profit.

Ich möchte auch eine Bedingung hinzufügen: Wenn ein Stop Loss für den Kauf ausgelöst wurde, eröffne einen Verkaufsauftrag. Ich denke, ich kann das selbst erledigen, aber helfen Sie mir, die Fehler zu beheben.
Ich weiß nicht, was ich damit anfangen soll. Ich denke, ich sollte es selbst tun.)
Dateien:
777.mq4  10 kb
TMA_Fair.mq4  9 kb
 

Bitte helfen Sie mir mit dem Kauf-Verkaufs-Schalter, ich lerne gerade!

void OnTick()

{

MAprice=iMA(Symbol(),0,MAperiod,MAshift,MODE_SMA,PRICE_CLOSE,1);

if(CountBuy() + CountSell() == 0 && Ask > MAprice)

{

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slip,0,0,NULL,magic,0,clrBlue)<1)

Print(" Kaufauftrag konnte nicht eröffnet werden!");

if(AnzahlKäufe()>=1)

{

Preis = FindLastBuyPrice();

if((Preis - Ask) >= step*Point)

{

if(OrderSend(Symbol(),OP_BUY,lot,Ask,slip,0,0,NULL,magic,0,clrBlue)<1)

Print("Kaufauftrag konnte nicht eröffnet werden!)

}

}

if(CountBuy() + CountSell() == 0 && Bid < MAprice)

{

if(OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,0,clrRed)<1)

Print("Verkaufsauftrag konnte nicht eröffnet werden!)

}

}

if(CountSell()>=1)

{

Preis = FindLastSellPrice();

if((Preis - Gebot) >= Schritt*Punkt)

{

if(OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,0,clrRed)<1)

Print("Verkaufsauftrag konnte nicht geöffnet werden!");

}

}

double op = CalculateProfit();

if(op>=profit)

{

CloseAll();

}

}


//+------------------------------------------------------------------+

void CloseAll()


oder wo kann man lernen?

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 
Diese Funktion bindet den Balken nicht an die Zeit. Ich möchte Bar[0]=:00(Minuten) oder 01:00, 02:00 ...eines jeden Tages. Der Algorithmus wird also erst dann berechnet, wenn ein bestimmter Zeitpunkt erreicht ist. In der übrigen Zeit liegt der Indikator bei mir.
Seric29:

Hierfür gibt es eine Funktion.

Sie gibt die Taktzeit zurück.