Forse c'è una funzione in MQL5? Voglio capire perché ricevo questo messaggio 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;
}
Forse c'è una funzione in MQL5? Voglio capire perché ricevo questo messaggio 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alert: Request to place Sell order failed - error code:4756
Per favore ditemi come interpretare questa linea nel codice -- CParabolicStop *SARTrailing[];
CNRTRStop *NRTRTrailing[]; Capisco che CParabolicStop e CNRTRStop sono classi, * puntatore, array SARTrailing[] e NRTRTrailing[] Ma cosa significano queste stringhe? L'articolo di questo consiglierehttps://www.mql5.com/it/articles/134 dice che questo è --- Come faccio a capire questo? E dove esattamente vengono creati questi array? Posso davvero caricare classi in array, o oggetti di classi? E a cosa serve in termini pratici?
//+------------------------------------------------------------------+//| 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);
}
}
//+------------------------------------------------------------------+
E se non sei duro, per favore specifica dove è scritto che questo asterisco è un puntatore * nella documentazione. L'ho visto una volta, ma ho già cercato in un libro di testo e non riesco a trovarlo((((
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5 минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
Salve, è possibile e come creare un algoritmo per aprire e chiudere un affare senza usare alcun indicatore?
Per esempio, prendete due linee, una linea di tendenza è in alto e la seconda è anche in basso, mettetele una sopra l'altra, c'è un punto di intersezione tra le due linee, supponiamo che sia a 15-30 nel tempo, poi come fare l'ordine aperto automaticamente allo stesso tempo per iniziare in qualsiasi direzione, come fare l'algoritmo troverà questi punti e aprire una posizione? Vorrei un chiarimento e le vostre opinioni.
Ho bisogno di raccogliere in array, le gestioni dell'indicatore su diversi timeframe, ma risulta che
Fractal=iFractals(Symbol(),tik);
non può essere fatto in questo modo (strano, perché i numeri primi possono essere utilizzati in questo parametro, ma non una variabile con una costante numerica?
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: Ho bisogno di raccogliere i gestori di indicatori su diversi timeframe in array, ma risulta che non può farlo ( è strano, perché posso usare numeri primi in questo parametro, ma non una variabile con una costante numerica?
Kira27: Ho bisogno di raccogliere le maniglie degli indicatori su diversi timeframe in array, ma risulta che non può essere fatto in questo modo (mi chiedo perché si possono usare numeri primi in questo parametro, ma non variabili con costanti numeriche?
La maniglia dell'indicatore in MQL5 DEVE ESSERE CREATA UNA SOLA VOLTA!!! E deve essere fatto in OnInit()!!!
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Ma come posso ottenere questo valore per un'altra coppia di valute?
Puoi dirmelo per favore?
Quello che è _Digits lo capisco.
Come ottenerlo per un'altra coppia di valute?
Per favore, aiutatemi.
CIFRE SIMBOLO
Numero di cifre dopo la virgola decimale
int
MqlTradeRequest mrequest ???
Forse c'è una funzione in MQL5? Voglio capire perché ricevo questo messaggio 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alert: Request to place Sell order failed - error code:4756
Ciao!!! Puoi dirmi come registrare la struttura completata
MqlTradeRequest mrequest ???
Forse c'è una funzione in MQL5? Voglio capire perché ricevo questo messaggio 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
Ed ecco la trascrizione: quicome rimuovere programmaticamente la finestra di dialogo Alert dalla finestra?
E se non sei duro, per favore specifica dove è scritto che questo asterisco è un puntatore * nella documentazione. L'ho visto una volta, ma ho già cercato in un libro di testo e non riesco a trovarlo((((
Salve, è possibile e come creare un algoritmo per aprire e chiudere un affare senza usare alcun indicatore?
Per esempio, prendete due linee, una linea di tendenza è in alto e la seconda è anche in basso, mettetele una sopra l'altra, c'è un punto di intersezione tra le due linee, supponiamo che sia a 15-30 nel tempo, poi come fare l'ordine aperto automaticamente allo stesso tempo per iniziare in qualsiasi direzione, come fare l'algoritmo troverà questi punti e aprire una posizione? Vorrei un chiarimento e le vostre opinioni.
Possiamo creare un EA basato su tale T3?non può essere fatto in questo modo (strano, perché i numeri primi possono essere utilizzati in questo parametro, ma non una variabile con una costante numerica?
Ho bisogno di raccogliere i gestori di indicatori su diversi timeframe in array, ma risulta che
non può farlo ( è strano, perché posso usare numeri primi in questo parametro, ma non una variabile con una costante numerica?
Perché ci deve essere un lasso di tempo
Identificatore
Descrizione
PERIODO_CORRENTE
Periodo corrente
PERIODO_M1
1 minuto
PERIODO_M2
2 minuti
PERIODO_M3
3 minuti
PERIODO_M4
4 minuti
PERIODO_M5
5 minuti
PERIODO_M6
6 minuti
PERIODO_M10
10 minuti
PERIODO_M12
12 minuti
PERIODO_M15
15 minuti
PERIODO_M20
20 minuti
PERIODO_M30
30 minuti
PERIODO_H1
1 ora
PERIODO_H2
2 ore
PERIODO_H3
3 ore
PERIODO_H4
4 ore
PERIODO_H6
6 ore
PERIODO_H8
8 ore
PERIODO_H12
12 ore
PERIODO_D1
1 giorno
PERIODO_W1
1 settimana
PERIODO_MN1
1 mese
Ho bisogno di raccogliere le maniglie degli indicatori su diversi timeframe in array, ma risulta che
non può essere fatto in questo modo (mi chiedo perché si possono usare numeri primi in questo parametro, ma non variabili con costanti numeriche?
La maniglia dell'indicatore in MQL5 DEVE ESSERE CREATA UNA SOLA VOLTA!!! E deve essere fatto in OnInit()!!!