Fragen zum MQL5-Assistenten und zur Standardbibliothek der Handelsklassen - Seite 14

 
Betrachten wir zum Beispiel die MACD-Signale. Es werden insgesamt 5 Kaufsignale und 5 Verkaufssignale beschrieben (Umkehrung, Kreuzung mit der Signallinie usw.). Gibt es eine Möglichkeit, den Wert dieser Signale zu einem bestimmten Zeitpunkt zu ermitteln? D.h. für jeden Balken einen Vektor mit 10 Elementen bilden, wobei jedes Element dem Signal entspricht, 1 das Vorhandensein und 0 das Fehlen anzeigt? Welche Methode der Klasse CSignalMACD kann verwendet werden, um die entsprechenden Werte zu erhalten?
 
IvanSD:

Betrachten wir zum Beispiel die MACD-Signale. Es werden insgesamt 5 Kaufsignale und 5 Verkaufssignale beschrieben (Umkehrung, Kreuzung mit der Signallinie usw.). Gibt es eine Möglichkeit, den Wert dieser Signale zu einem bestimmten Zeitpunkt zu ermitteln? D.h. für jeden Balken einen Vektor mit 10 Elementen bilden, wobei jedes Element dem Signal entspricht, 1 das Vorhandensein und 0 das Fehlen anzeigt? Welche Methode der Klasse CSignalMACD kann verwendet werden, um die entsprechenden Werte zu erhalten?
In der Standardauslieferung ist eine solche Funktionalität leider nicht enthalten.
 
uncleVic:
Leider ist diese Funktion nicht standardmäßig verfügbar.
Vielen Dank für Ihre Antwort!
 

Hallo, helfen Sie mir bitte weiter. Ich habe einen Roboter gebaut (meinen ersten Roboter). Unmittelbar nach dem Start schaltet er sich mit der Meldung Expert initializing of robot (EURUSD,H1) failed ab. Ich kann keine weiteren Informationen darüber finden.

Hier ist sein Code:

--------------------------------------

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

//| robot.mq5 |

//| Copyright 2012, MetaQuotes Software Corp.

//| http://www.mql5.com |

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

#property copyright "Copyright 2012, MetaQuotes Software Corp.

#property link "http://www.mql5.com"

#Eigenschaft Version "1.00"

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

//| Einschließen |

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

#include <Experte\Experte.mqh>

//--- verfügbare Signale

#include <Expert\robot\robot.mqh>

//--- verfügbares Nachwort

#include <Expert\Trailing\TrailingNone.mqh>

//--- verfügbare Geldverwaltung

#include <Expert\Money\MoneyFixedLot.mqh>

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

//| Eingaben |

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

//--- Eingaben für Experten

input string Expert_Title ="robot"; // Name des Dokuments

ulong Expert_MagicNumber =24553; //

bool Expert_EveryTick =false; //--- Eingaben für Hauptsignal

//--- Eingänge für Hauptsignal

input int Signal_ThresholdOpen =10; // Zu öffnender Signalschwellenwert [0...100]

input int Signal_ThresholdClose =10; // Signalschwellenwert zum Schließen [0...100]

input double Signal_PriceLevel =0.0; // Preisniveau zur Ausführung eines Geschäfts

input double Signal_StopLevel =50.0; // Stop Loss Level (in Punkten)

input double Signal_TakeLevel =50.0; // Take Profit Level (in Punkten)

input int Signal_Expiration =4; // Ablauf der schwebenden Aufträge (in Takten)

input int Signal_MaCross_FastPeriod=13; // My_MA_Cross(13,MODE_SMA,21,...) Periode des schnellen MA

input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Methode des schnellen MA

input int Signal_MaCross_SlowPeriod=21; // My_MA_Cross(13,MODE_SMA,21,...) Periode des langsamen MA

input ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Methode des langsamen MA

input double Signal_MaCross_Weight =1.0; // My_MA_Cross(13,MODE_SMA,21,...) Gewicht [0...1.0]

//--- Eingaben gegen Geld

input double Money_FixLot_Percent =10.0; // Prozentsatz

input double Money_FixLot_Lots =0.1; // Festes Volumen

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

//| Globales Expertenobjekt |

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

CExpert ExtExpert;

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

//| Initialisierungsfunktion des Experten

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

int OnInit()

{

//--- Initialisierung des Experten

if(!ExtExpert.Init(Symbol(),Zeitraum(),Expert_EveryTick,Expert_MagicNumber))

{

//--- fehlgeschlagen

printf(__FUNCTION__+": Fehler beim Initialisieren des Experten");

ExtExpert.Deinit();

zurück(-1);

}

//--- Signal erzeugen

CExpertSignal *signal=neues CExpertSignal;

if(signal==NULL)

{

//--- fehlgeschlagen

printf(__FUNCTION__+": Fehler beim Erzeugen des Signals");

ExtExpert.Deinit();

zurück(-2);

}

//---

ExtExpert.InitSignal(signal);

signal.ThresholdOpen(Signal_ThresholdOpen);

signal.ThresholdClose(Signal_ThresholdClose);

signal.PriceLevel(Signal_PriceLevel);

Signal.StopLevel(Signal_StopLevel);

signal.TakeLevel(Signal_TakeLevel);

Signal.Ablauf(Signal_Ablauf);

//--- Filter MA_Cross erstellen

MA_Cross *filter0=new MA_Cross;

if(filter0==NULL)

{

//--- fehlgeschlagen

printf(__FUNCTION__+": Fehler beim Erstellen von filter0");

ExtExpert.Deinit();

zurück(-3);

}

signal.AddFilter(filter0);

//--- Filterparameter einstellen

filter0.FastPeriod(Signal_MaCross_FastPeriod);

filter0.FastMethod(Signal_MaCross_FastMethod);

filter0.SlowPeriod(Signal_MaCross_SlowPeriod);

filter0.SlowMethod(Signal_MaCross_SlowMethod);

filter0.Weight(Signal_MaCross_Weight);

//--- Erstellung eines Nachlaufobjekts

CTrailingNone *trailing=new CTrailingNone;

if(trailing==NULL)

{

//--- fehlgeschlagen

printf(__FUNCTION__+": Fehler bei der Erstellung des Nachsatzes");

ExtExpert.Deinit();

zurück(-4);

}

//--- Hinzufügen eines Nachsatzes zum Experten (wird automatisch gelöscht))

if(!ExtExpert.InitTrailing(trailing))

{

//--- fehlgeschlagen

printf(__FUNCTION__+": Fehler beim Initialisieren des Nachspanns");

ExtExpert.Deinit();

zurück(-5);

}

//--- Schleppende Parameter einstellen

//--- Erstellung eines Geldobjekts

CMoneyFixedLot *money=new CMoneyFixedLot;

if(Geld==NULL)

{

//--- fehlgeschlagen

printf(__FUNCTION__+": Fehler beim Erstellen von Geld");

ExtExpert.Deinit();

zurück(-6);

}

//--- Geld zum Experten hinzufügen (wird automatisch gelöscht))

if(!ExtExpert.InitMoney(money))

{

//--- fehlgeschlagen

printf(__FUNCTION__+": Fehler beim Initialisieren von Geld");

ExtExpert.Deinit();

zurück(-7);

}

//--- Geldparameter einstellen

money.Percent(Money_FixLot_Percent);

Geld.Lose(Geld_FixLos_Lose);

//--- Überprüfung aller Parameter der Handelsobjekte

if(!ExtExpert.ValidationSettings())

{

//--- fehlgeschlagen

ExtExpert.Deinit();

zurück(-8);

}

//--- Abstimmung aller erforderlichen Indikatoren

if(!ExtExpert.InitIndicators())

{

//--- fehlgeschlagen

printf(__FUNCTION__+": Fehler beim Initialisieren der Indikatoren");

ExtExpert.Deinit();

zurück(-9);

}

//--- ok

zurück(0);

}

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

//| Deinitialisierungsfunktion des Experten |

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

void OnDeinit(const int reason)

{

ExtExpert.Deinit();

}

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

//| "Tick"-Ereignishandlerfunktion |

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

void OnTick()

{

ExtExpert.OnTick();

}

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

//| Ereignisbehandlungsfunktion "Handel" |

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

void OnTrade()

{

ExtExpert.OnTrade();

}

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

//| "Timer"-Ereignishandlerfunktion |

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

void OnTimer()

{

ExtExpert.OnTimer();

}

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

Was könnte das Problem sein? Ich weiß nicht einmal, wo ich zuerst suchen soll.

Vielen Dank im Voraus.

Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 
pasha191:

Hallo, helfen Sie mir bitte weiter. Ich habe einen Roboter gebaut (meinen ersten Roboter). Unmittelbar nach dem Start schaltet er sich mit der Meldung Expert initializing of robot (EURUSD,H1) failed ab. Ich kann keine weiteren Informationen darüber finden.


Ich habe nicht genug Informationen.

Bedarf

#include <Expert\robot\robot.mqh>

Ich benötige Startparameter (Tester/Terminal, Server, Paar, Zeitrahmen, usw.)

PS Der Quellcode lässt sich besser als Datei anhängen

 

Fragen zum MQL5-Assistenten:

1) //--- Eingaben für Geld
Eingabe double Money_FixLot_Percent =10.0; // Prozentsatz
input double Money_FixLot_Lots =0.1; // Feste Lautstärke
Was bedeuten diese Parameter? Und wie sind sie miteinander verbunden?

2) Kann ich einen EA generieren, der Pending Orders platziert? Wenn ja, wie?

3) Was bedeutet die Variable Signal_Expiration? Wie verwende ich es?

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
evrika:

Fragen zum MQL5-Assistenten:

1) //--- Eingaben für Geld
Eingabe double Money_FixLot_Percent =10.0; // Prozentsatz
input double Money_FixLot_Lots =0.1; // Feste Lautstärke
Was bedeuten diese Parameter? Und wie sind sie miteinander verbunden?

2) Kann ich einen EA generieren, der Pending Orders platziert? Wenn ja, wie?

3) Was bedeutet die Variable Signal_Expiration? Wie wird es verwendet?

1) Der Parameter Money_FixLot_Percent wird verwendet, um das Niveau des "Zwangsstopps" festzulegen. Berühren Sie es nicht.

Der Parameter Money_FixLot_Lots legt ein festes Volumen (Lot) fest, mit dem Ihr Expert Advisor in den Markt einsteigen wird.

Diese Parameter sind in keiner Weise miteinander verknüpft.

2) Jeder von einem Assistenten erstellte Expert Advisor kann mit schwebenden Aufträgen handeln. Zu diesem Zweck wird der Parameter ..._PriceLevel verwendet. Je nach dem Wert dieses Parameters verhält sich der Expert Advisor wie folgt:

0 - der Markteintritt erfolgt zum aktuellen Kurs;

>0 - der Markteintritt erfolgt über schwebende Limit-Orders (besser als der aktuelle Kurs um den Wert dieses Parameters);

<0 - der Markteintritt erfolgt über schwebende Stop-Orders (um den Wert des Parameters schlechter als der aktuelle Kurs);

3) Der Parameter Signal_Expiration legt die Lebensdauer einer schwebenden Order fest (in Takten des aktuellen Zeitrahmens).

 

Wenn ich einen EA im MQL5-Assistenten generiere, wie viele Aufträge kann ein solcher EA gleichzeitig öffnen? Wie ist das geregelt?

Собери свой торговый советник в Мастере MQL5
Собери свой торговый советник в Мастере MQL5
  • 2011.01.14
  • MetaQuotes Software Corp.
  • www.mql5.com
Знание языков программирования теперь не является обязательным условием для создания торговых роботов. Если раньше это действительно служило непроходимым препятствием для реализации своих торговых стратегий, то появление Мастера MQL5 в корне изменило ситуацию. Начинающие трейдеры могут перестать тревожиться из-за отсутствия опыта программирования - с новым визардом, позволяющим быстро генерировать код советника, он не понадобится.
 
evrika:

Wenn ich einen EA im MQL5-Assistenten generiere, wie viele Aufträge kann ein solcher EA gleichzeitig öffnen? Wie wird dies kontrolliert?

1 Bestellung. Sie ist nicht geregelt.

Der Assistent ist für Strategietests gedacht. Wenn Sie mehr wollen, müssen Sie "feilen" (von Hand schreiben).

 
uncleVic:

2) Jeder vom Assistenten generierte EA kann mit schwebenden Aufträgen handeln. Zu diesem Zweck wird der Parameter ..._PriceLevel verwendet. Je nach dem Wert dieses Parameters verhält sich der Expert Advisor wie folgt:

0 - der Markteintritt erfolgt zum aktuellen Kurs;

>0 - der Markteintritt erfolgt über schwebende Limit-Orders (besser als der aktuelle Preis um den Wert dieses Parameters);

<0 - der Markteintritt erfolgt über schwebende Stop-Orders (um den Wert des Parameters schlechter als der aktuelle Kurs);

In welchen Einheiten wird der Parameter PriceLevel gemessen? In Punkten? D.h., wenn ich eine ausstehende Stop-Order 20 Pips über dem aktuellen Kurs platzieren möchte,

Sollte ich diesen Parameter PriceLevel =-0.0020 setzen?