Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 349
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ist es möglich, dynamische Eingabeparameter über iCustom an den Indikator zu übergeben? Wenn ich dies versuche, wird für jeden neuen dynamischen Eingabeparameter ein neues Indikatorfenster geöffnet.
In diesem Thread möchte ich damit beginnen, denjenigen zu helfen, die wirklich das Programmieren in der neuen MQL4 verstehen und lernen wollen und einfach zu MQL5 wechseln wollen - die Sprachen sind sehr ähnlich.
Dies ist ein guter Ort, um Aufgaben, Algorithmen zu ihrer Lösung und alle anderen Fragen im Zusammenhang mit der MT-Programmierung zu diskutieren.
Ich hoffe, dass andere erfahrene Mitglieder unseres Forums sich uns anschließen werden und der Thread für alle interessant sein wird.
In diesem Zweig möchte ich damit beginnen, denjenigen zu helfen, die wirklich das Programmieren in der neuen MQL4 verstehen und erlernen wollen und leicht zu MQL5 wechseln wollen - die Sprachen sind sehr ähnlich.
Dies ist ein guter Ort, um Probleme, Algorithmen und andere Fragen zur MT-Programmierung zu diskutieren.
Ich hoffe, dass andere erfahrene Mitglieder unseres Forums sich uns anschließen werden, um die Probleme zu lösen, und dass der Thread für alle von Interesse sein wird.
In diesem Zweig möchte ich damit beginnen, denjenigen zu helfen, die wirklich das Programmieren in der neuen MQL4 verstehen und erlernen wollen und leicht zu MQL5 wechseln wollen - die Sprachen sind sehr ähnlich.
Dies ist ein guter Ort, um Probleme, Algorithmen und andere Fragen zur MT-Programmierung zu diskutieren.
Ich hoffe, dass andere erfahrene Mitglieder unseres Forums sich uns anschließen werden und dieses Thema für alle interessant sein wird.
In diesem Zweig möchte ich damit beginnen, denjenigen zu helfen, die wirklich das Programmieren in der neuen MQL4 verstehen und erlernen wollen und leicht zu MQL5 wechseln wollen - die Sprachen sind sehr ähnlich.
Dies ist ein guter Ort, um Probleme, Algorithmen und andere Fragen zur MT-Programmierung zu diskutieren.
Ich hoffe, dass andere erfahrene Mitglieder unseres Forums sich uns anschließen werden und dieses Thema für alle interessant sein wird.
In diesem Zweig möchte ich damit beginnen, denjenigen zu helfen, die wirklich das Programmieren in der neuen MQL4 verstehen und erlernen wollen und leicht zu MQL5 wechseln wollen - die Sprachen sind sehr ähnlich.
Dies ist ein guter Ort, um Aufgaben, Algorithmen zu ihrer Lösung und alle anderen Fragen zu diskutieren, die auf die eine oder andere Weise mit der MT-Programmierung zusammenhängen.
Ich hoffe, dass andere erfahrene Mitglieder unseres Forums sich uns anschließen werden und dieses Thema für alle interessant sein wird.
Artjom
Ich möchte dieses Kapitel beginnen, um denjenigen zu helfen, die das Programmieren in dem neuen MQL4 wirklich verstehen und lernen wollen und die leicht zu MQL5 wechseln wollen - die Sprachen sind sehr ähnlich.
Hier können Aufgaben, Algorithmen zu ihrer Lösung und alle anderen Fragen, die in irgendeiner Weise mit der MT-Programmierung zusammenhängen, diskutiert werden.
Ich hoffe, dass andere erfahrene Mitglieder unseres Forums sich uns anschließen werden, um die Probleme zu lösen, und dass der Thread für alle von Interesse sein wird.
Helfen Sie mir, ich habe Trailing Stop Funktion zu meinem EA hinzugefügt, ich habe es getestet und es gibt mir zwei Fehler. - Ich habe keine Ahnung, wie man sie repariert. Allerdings werden die Geschäfte nach der alten Strategie geschlossen, wenn der Kurs die obere bzw. untere Grenze des Kanals berührt hat. Ich denke, auch hier muss etwas geändert werden. - Rufen Sie die Jungs von der Armee des DNR zurück.
#property copyright "Copyright 2017, MetaQuotes Software Corp.
#property link "https://www.mql5.com"
#Eigenschaft Version "1.00"
#Eigenschaft streng
//---------------------------------------------------------
extern double Lots = 0,01;
extern int TakeProfit = 600;
extern int StopLoss = 25;
extern int Magic = 0001;
extern int Schlupf = 3;
extern int TralType = 0; // 0-SAR, 1-ATR, 2-HMA.
extern double SAR_Step = 0,02;
extern double SAR_Max = 0.2;
extern int ATR_Period = 14;
extern double ATR_K = 2.0;
extern inttern HMA_Zeitraum = 16;
extern intern HMA_Methode = 3;
extern inttern HMA_Shift = 0;
datetime LBT;
//---------------------------------------------------------
extern string TMA = "TMA-Indikatorparameter";
externer String TimeFrame = "aktueller Zeitrahmen";
extern int HalfLength = 56;
extern int Preis = "PRICE_CLOSE;
extern double ATRMultiplier = 2.0;
extern inttern ATRPeriod = 100;
extern bool Interpolate = true;
//---------------------------------------------------------
double PriceHigh, PriceLow, SL, TP;
int-Ticket;
//+------------------------------------------------------------------+
Experten-Initialisierungsfunktion //|.
//+------------------------------------------------------------------+
int OnInit()
{
if (Ziffern == 3 || Ziffern == 5)
{
TakeProfit *= 10;
StopLoss *= 10;
Schlupf *= 10;
}
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Experten-Tick-Funktion |
//+------------------------------------------------------------------+
void OnTick()
{
PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);
PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);
if(CountSell() == 0 && Bid >= PriceHigh)
{
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red);
wenn (Ticket > 0)
{
SL = NormalizeDouble(Bid + StopLoss*Point, Digits);
TP = NormalizeDouble(Bid - TakeProfit*Point, Digits);
if (OrderSelect(ticket, SELECT_BY_TICKET))
if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("Fehler bei der Auftragsänderung!)
}
}
if (CountBuy() == 0 && Ask <= PriceLow)
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue);
wenn (Ticket > 0)
{
TP = NormalizeDouble(Ask + TakeProfit*Point, Digits);
SL = NormalizeDouble(Ask - StopLoss*Point, Digits);
if (OrderSelect(ticket, SELECT_BY_TICKET))
if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("Fehler beim Ändern der Kauforder!)
} else Print("Fehler beim Öffnen des Kaufauftrags");
}
//+------------------------------------------------------------------+
Experten-Initialisierungsfunktion //|.
//+------------------------------------------------------------------+
int init()
{
//--------
//--------
zurück (0);
}
//+------------------------------------------------------------------+
//| Experten-Tick-Funktion |
//+------------------------------------------------------------------+
void OnTick()
{
PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);
PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);
if(CountSell() == 0 && Bid >= PriceHigh)
{
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red);
wenn (Ticket > 0)
{
SL = NormalizeDouble(Bid + StopLoss*Point, Digits);
TP = NormalizeDouble(Bid - TakeProfit*Point, Digits);
if (OrderSelect(ticket, SELECT_BY_TICKET))
if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("Fehler beim Ändern des Verkaufsauftrags!)
} else Print("Fehler beim Öffnen des Verkaufsauftrags!)
}
if (CountBuy() == 0 && Ask <= PriceLow)
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue);
wenn (Ticket > 0)
{
TP = NormalizeDouble(Ask + TakeProfit*Point, Digits);
SL = NormalizeDouble(Ask - StopLoss*Point, Digits);
if (OrderSelect(ticket, SELECT_BY_TICKET))
if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("Fehler beim Ändern der Kauforder!)
} else Print("Fehler beim Öffnen des Kaufauftrags");
}
if (Ask <= PriceLow && CountSell() > 0)
{
for (int i = OrdersTotal() -1; i>0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)
if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black))
Print("Fehler beim Schließen der Verkaufsorder!)
}
}
}
if (Bid >= PriceHigh && CountBuy() > 0)
{
for (int i = OrdersTotal() -1; i>0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)
if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black))
Print("OrderClose Buy Fehler!)
}
}
}
}
//+------------------------------------------------------------------+
int CountSell()
{
int count = 0;
for (int trade = OrdersTotal()-1; trade>=0; trade--)
{
if(OrderSelect(Handel, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
zählen++;
}
}
return(count);
}//+------------------------------------------------------------------+
int CountBuy()
{
int count = 0;
for (int trade = OrdersTotal()-1; trade>=0; trade--)
{
if(OrderSelect(Handel, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
zählen++;
}
}
return(count);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit()
{
//+-------
//+-------
zurück (0)
}
//+------------------------------------------------------------------+
//| Expertenstartfunktion |
//+------------------------------------------------------------------+
int Start()
{
//-----
bool error = fals;
if (LBT!=Time[0]) {
if (OrdersTotal()!=0) {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2) {
double SL = OrderStopLoss();
wenn OrderType()==0) {
switch (TralType) {
Fall 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);
Pause;
Fall 1: SL = Hoch[1] - iATR(NULL,0,ATR,Zeitraum,1)*ATR_K;
Pause;
Fall 2: SL = iCustom(NULL,0, "VininI_HMAsound&",HMA_Period,HMA_Method,3,HMA_Shift, fals,fals,",1,0,0);
Pause;
}
wenn (SL<OrderStopLoss())
SL = OrderStopLoss();
}
if (OrderType()==1) {
switch (TralType) {
Fall 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);
Pause;
Fall 1: SL = Low[1] + iATR(NULL,0,ATR,Period,1)*ATR_K;
Pause;
Fall 2: SL = iCustom(NULL,0, "VininI_HMAsound&",HMA_Period,HMA_Method,3,HMA_Shift, fals,fals,",1,0,0);
Pause;
}
wenn (SL>OrderStopLoss())
SL = OrderStopLoss();
}
wenn (SL!=OrderStopLoss()) {
if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0))
Fehler = true;
}
}
}
}
wenn (!Fehler)
LBT = Zeit[0];
}
zurück (0);
}
//+------------------------------------------------------------------+
Lernen Sie, wie man Code einfügt!!!
Lernen Sie, Code einzufügen!!!
Lernen Sie, wie man Code einfügt!!!
Lernen Sie, wie man Code einfügt!!!
Lernen Sie, wie man Code einfügt!!!
Lernen Sie, wie man Code einfügt!!!
Lernen Sie, wie man Code einfügt!!!
Lernen Sie, wie man Code einfügt!!!
Lernen Sie, wie man Code einfügt!!!
Lernen Sie, Code einzufügen!!!
Ich beschloss zu helfen. Aber ich habe Fragen an den Autor - Sie haben diese beiden Initialisierungsfunktionen - was tun sie?
Es gibt zweiOnTick()-Funktionen.... und eine dritte Funktion int Start() - sie alle werden mit dem Eintreffen des Ticks ausgeführt. Und in welcher Reihenfolge wird das Terminal sie starten?
Fehler: am Ende der Funktion OnTick() fehlt eine schließende geschweifte Klammer
Jetzt hat der Compiler 8 Fehler entdeckt. Ich habe gelöscht.
Es gibt jetzt 7 Fehler.
Ich habe if(OrderType()==0) durch eine Klammer nach if ersetzt: if(OrderType()==0) - 8 Fehler aufgetreten
iATR(NULL,0,ATR,Periode,1) - wir brauchen iATR(NULL,0,ATR_Periode,1) - 2 Fehler sind aufgetreten
bool error = fals; wir brauchen bool error = false; - errors wurde 3
Wo können wir den Indikator VininI_HMAsound& bekommen? Welche Parameter gibt es? = der Fehler wäre immer noch 1
Und warum sollten Sie eine Frage an drei Stellen stellen?
Hilfe herunterladen und installieren kostenlose EAs und Signale auf mt4 nicht als neemogu finden Download vide nur, wie zu installieren, aber kein Download. Sag mir, wo ich suchen soll
Hilfe herunterladen und installieren kostenlose EAs und Signale auf mt4 nicht als neemogu finden Download vide nur, wie zu installieren, aber kein Download. Bitte beraten Sie mich, wo ich suchen soll.
Erst graduieren, dann kommen.
Wie ist das?
Hallo. Können Sie mir sagen, warum esima=iMA(Symbol(),1,60,0,1,0,k) nicht sieht. Der Kommentar enthält eine viel höhere Quote als die Zeile selbst. Das ist der Grund, warum die Mindest- und Höchstwerte nicht korrekt berechnet werden.
Hallo. Können Sie mir sagen, warumima=iMA(NULL,60,24,0,1,0,k) nicht angezeigt wird? Durch den Kommentar wird eine viel höhere Quote angezeigt als in der Zeile selbst. Dies ist der Grund, warum die Mindest- und Höchstwerte nicht korrekt berechnet werden.
iMA ist eine Nummerierung wie in Zeitreihen, 0 ist die wichtigste Zahl. Und bei Ihnen ist es wahrscheinlich genau umgekehrt.
Es ist eine ungewollte Wette. Es ändert sich nichts. Der eigentliche Punkt ist, dass es mit k falsch angezeigt wird!