Vielleicht gibt es eine Funktion in MQL5? Ich möchte verstehen, warum ich diese Meldung bekomme 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alert: Request to place Sell order failed - error code:4756
//--- собираем все вместеif(Sell_Condition_1 && Sell_Condition_2)
{
if(Sell_Condition_3 && Sell_Condition_4)
{
// есть ли в данный момент открытая позиция на продажу?if(Sell_opened)
{
Alert("Уже есть позиция на продажу!!!");
return; // не добавлять к открытой позиции на продажу
}
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение
mrequest.price = NormalizeDouble(latest_price.bid,_Digits); // последняя цена Bid
mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = Lot; // количество лотов для торговли
mrequest.magic = EA_Magic; // Magic Number
mrequest.type= ORDER_TYPE_SELL; // ордер на продажу
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=100; // проскальзывание от текущей цены//--- отсылаем ордерOrderSend(mrequest,mresult);
// анализируем код возврата торгового сервераif(mresult.retcode==10009 || mresult.retcode==10008) //Request is completed or order placed
{
Alert("Ордер Sell успешно помещен, тикет ордера #:",mresult.order,"!!");
}
else
{
Alert("Запрос на установку ордера Sell не выполнен - код ошибки:",GetLastError());
return;
}
}
}
return;
}
Vielleicht gibt es eine Funktion in MQL5? Ich möchte verstehen, warum ich diese Meldung bekomme 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alert: Request to place Sell order failed - error code:4756
Bitte sagen Sie mir, wie diese Zeile im Code zu interpretieren ist - CParabolicStop *SARTrailing[];
CNRTRStop *NRTRTrailing[]; Ich verstehe, dass CParabolicStop und CNRTRStop Klassen sind, * Zeiger, Arrays SARTrailing[] und NRTRTrailing[] Aber was bedeuten diese Zeichenfolgen? Der Artikel dieses Ratgebershttps://www.mql5.com/de/articles/134 heißt es, dass dies --- Wie ist das zu verstehen? Und wo genau werden diese Arrays erstellt? Kann ich wirklich Klassen in Arrays laden, oder Objekte von Klassen? Und wozu dient das in der Praxis?
//+------------------------------------------------------------------+//| Sample_TrailingStop.mq5 |//| MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright"MetaQuotes Software Corp."#property link"http://www.mql5.com"#property version"1.00"#include <Sample_TrailingStop.mqh> // подключение класса трейлинга//--- input parametersinputdouble SARStep = 0.02; // Шаг Parabolicinputdouble SARMaximum = 0.02; // Максимум Parabolicinputint NRTRPeriod = 40; // Период NRTRinputdouble NRTRK = 2; // Коэффициент NRTRstring Symbols[]={"EURUSD","GBPUSD","USDCHF","USDJPY"};
CParabolicStop *SARTrailing[];
CNRTRStop *NRTRTrailing[];
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
ArrayResize(SARTrailing,ArraySize(Symbols)); // изменение размера в соответствии с количеством используемых символовArrayResize(NRTRTrailing,ArraySize(Symbols)); // изменение размера в соответствии с количеством используемых символов for(int i=0;i<ArraySize(Symbols);i++)
{ // для всех символов
SARTrailing[i]=new CParabolicStop(); // создание экземпляра класса CParabolicStop
SARTrailing[i].Init(Symbols[i],PERIOD_CURRENT,false,true,true,5,15+i*17,Silver,Blue); // инициализация экземпляра класса CParabolicStop if(!SARTrailing[i].SetParameters(SARStep,SARMaximum))
{ // установка параметров экземпляра класса CParabolicStop Alert("trailing error");
return(-1);
}
SARTrailing[i].StartTimer(); // запуск таймера//----
NRTRTrailing[i]=new CNRTRStop(); // создание экземпляра класса CNRTRStop
NRTRTrailing[i].Init(Symbols[i],PERIOD_CURRENT,false,true,true,127,15+i*17,Silver,Blue); // инициализация экземпляра класса CNRTRStop if(!NRTRTrailing[i].SetParameters(NRTRPeriod,NRTRK))
{ // установка параметров экземпляра класса CNRTRcStop Alert("trailing error");
return(-1);
}
NRTRTrailing[i].StartTimer(); // запуск таймера
}
return(0);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].Deinit();
NRTRTrailing[i].Deinit();
delete(SARTrailing[i]);
delete(NRTRTrailing[i]);
}
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].DoStoploss();
NRTRTrailing[i].DoStoploss();
}
}
//+------------------------------------------------------------------+voidOnTimer()
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].Refresh();
NRTRTrailing[i].Refresh();
}
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam
)
{
for(int i=0;i<ArraySize(Symbols);i++)
{
SARTrailing[i].EventHandle(id,lparam,dparam,sparam);
NRTRTrailing[i].EventHandle(id,lparam,dparam,sparam);
}
}
//+------------------------------------------------------------------+
Und wenn Sie nicht hart sind, geben Sie bitte an, wo in der Dokumentation von diesem Sternchen als Zeiger * die Rede ist. Ich habe es einmal gesehen, aber ich habe bereits ein Lehrbuch durchgesehen und kann es nicht finden((((
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5 минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
Hallo, ist es möglich und wie kann man einen Algorithmus für die Eröffnung und den Abschluss eines Geschäfts erstellen, ohne irgendwelche Indikatoren zu verwenden?
Zum Beispiel, nehmen Sie zwei Linien, eine Trendlinie ist nach oben und die zweite ist auch nach unten, legte sie auf einander, gibt es einen Schnittpunkt zwischen den beiden Linien, nehmen wir an, es ist bei 15-30 in der Zeit, dann, wie die Reihenfolge automatisch zur gleichen Zeit geöffnet, um in eine beliebige Richtung zu starten, wie man den Algorithmus wird diese Punkte zu finden und eine Position zu öffnen? Ich bitte um Klärung und Ihre Meinung.
Können wir einen EA auf der Grundlage eines solchen T3 erstellen?
Hallo!!! Eine Frage wie diese? Ich brauche, um in Arrays zu sammeln, der Indikator Griffe auf verschiedenen Timeframes, aber es stellt sich heraus, dass
Fractal=iFractals(Symbol(),tik);
kann nicht getan werden, dass Weg( Seltsam, warum kann Primzahlen in diesem Parameter verwendet werden, aber nicht eine Variable mit einer numerischen Konstante?
voidOnTick()
{
for(int tik =1; tik <= 6; tik++)
{
Fractal=iFractals(Symbol(),tik); // Вот эта tik переменная вызывает ошибку при компиляции
switch(tik)
{
case1:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_W1),FractalUP_W1); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_W1),FractalDown_W1); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_W1,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_W1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case2:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUP_D1); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalDown_D1); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_D1,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_D1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case3:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_H4),FractalUP_H4); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_H4),FractalDown_H4); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_H4,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_H4,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case4:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_H1),FractalUP_H1); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_H1),FractalDown_H1); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_H1,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_H1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case5:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_M30),FractalUP_30); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_M30),FractalDown_30); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_30,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_30,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
case6:
CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_M15),FractalUP_15); // заполнение масива FractalUp[] верхними фракталами на дневном графикеCopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_M15),FractalDown_15); // заполнение масива FractalUp[] нижними фракталами на дневном графике//--- индексация как в таймсерияхArraySetAsSeries(FractalUP_15,true); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серииArraySetAsSeries(FractalDown_15,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
;
break;
}
}
Kira27: Hallo!!! Ich habe eine Frage. Ich muss Indikator-Handler für verschiedene Zeitrahmen in Arrays sammeln, aber es stellt sich heraus, dass das nicht kann( Es ist seltsam, warum kann ich Primzahlen in diesem Parameter verwenden, aber nicht eine Variable mit einer numerischen Konstante?
Kira27: Ich brauche, um die Indikator-Handles auf verschiedenen Zeitrahmen in Arrays zu sammeln, aber es stellt sich heraus, dass nicht auf diese Weise getan werden kann (Ich frage mich, warum Sie Primzahlen in diesem Parameter verwenden können, aber nicht Variablen mit numerischen Konstanten?
Indikatorgriff in MQL5 MUSS EINMAL ERSTELLT WERDEN!!! Und das muss in OnInit() geschehen!!!
Aber wie erhalte ich diesen Wert für ein anderes Währungspaar?
Können Sie mir das bitte sagen?
Was _Digits ist, verstehe ich.
Wie bekomme ich sie für ein anderes Währungspaar?
Bitte, helfen Sie mir.
SYMBOL_ZIFFERN
Anzahl der Ziffern nach dem Dezimalpunkt
int
MqlTradeRequest mrequest ???
Vielleicht gibt es eine Funktion in MQL5? Ich möchte verstehen, warum ich diese Meldung bekomme 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alert: Request to place Sell order failed - error code:4756
Hallo!!! Können Sie mir sagen, wie ich die fertige Struktur protokollieren kann?
MqlTradeRequest mrequest ???
Vielleicht gibt es eine Funktion in MQL5? Ich möchte verstehen, warum ich diese Meldung bekomme 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alert: Request to place Sell order failed - error code:4756
https://www.mql5.com/ru/forum/327894
Und hier ist die Abschrift: hier, wie ich das Dialogfeld " Warnung" programmgesteuert aus dem Fenster entfernen kann?
Und wenn Sie nicht hart sind, geben Sie bitte an, wo in der Dokumentation von diesem Sternchen als Zeiger * die Rede ist. Ich habe es einmal gesehen, aber ich habe bereits ein Lehrbuch durchgesehen und kann es nicht finden((((
Hallo, ist es möglich und wie kann man einen Algorithmus für die Eröffnung und den Abschluss eines Geschäfts erstellen, ohne irgendwelche Indikatoren zu verwenden?
Zum Beispiel, nehmen Sie zwei Linien, eine Trendlinie ist nach oben und die zweite ist auch nach unten, legte sie auf einander, gibt es einen Schnittpunkt zwischen den beiden Linien, nehmen wir an, es ist bei 15-30 in der Zeit, dann, wie die Reihenfolge automatisch zur gleichen Zeit geöffnet, um in eine beliebige Richtung zu starten, wie man den Algorithmus wird diese Punkte zu finden und eine Position zu öffnen? Ich bitte um Klärung und Ihre Meinung.
Können wir einen EA auf der Grundlage eines solchen T3 erstellen?kann nicht getan werden, dass Weg( Seltsam, warum kann Primzahlen in diesem Parameter verwendet werden, aber nicht eine Variable mit einer numerischen Konstante?
Hallo!!! Ich habe eine Frage. Ich muss Indikator-Handler für verschiedene Zeitrahmen in Arrays sammeln, aber es stellt sich heraus, dass
das nicht kann( Es ist seltsam, warum kann ich Primzahlen in diesem Parameter verwenden, aber nicht eine Variable mit einer numerischen Konstante?
Denn es muss einen Zeitrahmen geben
Kennung
Beschreibung
PERIOD_CURRENT
Aktueller Zeitraum
PERIOD_M1
1 Minute
PERIOD_M2
2 Minuten
PERIOD_M3
3 Minuten
PERIOD_M4
4 Minuten
PERIOD_M5
5 Minuten
PERIOD_M6
6 Minuten
PERIOD_M10
10 Minuten
PERIOD_M12
12 Minuten
PERIOD_M15
15 Minuten
PERIOD_M20
20 Minuten
PERIOD_M30
30 Minuten
PERIOD_H1
1 Stunde
PERIOD_H2
2 Stunden
PERIOD_H3
3 Stunden
PERIOD_H4
4 Stunden
PERIOD_H6
6 Stunden
PERIOD_H8
8 Stunden
PERIOD_H12
12 Stunden
PERIOD_D1
1 Tag
PERIOD_W1
1 Woche
PERIOD_MN1
1 Monat
Ich brauche, um die Indikator-Handles auf verschiedenen Zeitrahmen in Arrays zu sammeln, aber es stellt sich heraus, dass
nicht auf diese Weise getan werden kann (Ich frage mich, warum Sie Primzahlen in diesem Parameter verwenden können, aber nicht Variablen mit numerischen Konstanten?
Indikatorgriff in MQL5 MUSS EINMAL ERSTELLT WERDEN!!! Und das muss in OnInit() geschehen!!!