Talvez haja uma função na MQL5? Quero compreender porque recebo esta mensagem 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alerta: Pedido de colocação de encomenda de venda falhou - código de erro: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;
}
Talvez haja uma função na MQL5? Quero compreender porque recebo esta mensagem 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alerta: Pedido de colocação de encomenda de venda falhou - código de erro:4756
Por favor, diga-me como interpretar esta linha no código -- CParabolicStop *SARTrailing[];
CNRTRStop *NRTRTrailing[]; compreendo que CParabolicStop e CNRTRStop são classes, * ponteiro, arrays SARTrailing[] e NRTRTrailing[] Mas o que significam estas cordas? O artigo deste conselheirohttps://www.mql5.com/pt/artigos/134 diz que isto é --- Como é que entendo isto? E onde é que estas matrizes são criadas exactamente? Posso realmente carregar classes em matrizes, ou objectos de classes? E para que é que serve em termos práticos?
//+------------------------------------------------------------------+//| 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 não for difícil, por favor especifique onde está escrito sobre este asterisco como um ponteiro * na documentação. Vi-o uma vez, mas já procurei num livro de texto e não o consigo encontrar((((
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5 минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
Olá, é possível e como criar um algoritmo para abrir e fechar um negócio sem utilizar quaisquer indicadores?
Por exemplo, pegue em duas linhas, uma linha de tendência para cima e a segunda para baixo, coloque-as uma em cima da outra, há um ponto de intersecção entre as duas linhas, vamos supor que é a 15-30 no tempo, então como fazer a ordem abrir automaticamente ao mesmo tempo para começar em qualquer direcção, como fazer o algoritmo vai encontrar estes pontos e abrir uma posição? Gostaria de obter esclarecimentos e as vossas opiniões.
Olá!!! Uma pergunta como esta? Preciso de recolher em matrizes, o indicador lida com prazos diferentes, mas acontece que
Fractal=iFractals(Symbol(),tik);
não pode ser feito dessa forma( Estranho, porque é que os números primos podem ser usados neste parâmetro, mas não uma variável com uma constante numérica?
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: Olá!!! Tenho uma pergunta a fazer. Preciso de recolher os manipuladores de indicadores em diferentes intervalos de tempo em matrizes, mas acontece que não consegue fazer isso ( É estranho, porque posso usar números primos neste parâmetro, mas não uma variável com uma constante numérica?
Kira27: Preciso de recolher as manipulações do indicador em diferentes intervalos de tempo em arrays, mas acontece que não pode ser feito dessa forma( Pergunto-me porque é que se pode usar números primos neste parâmetro, mas não variáveis com constantes numéricas?
Punho indicador em MQL5 DEVE SER CRIADO UMA VEZ!!! E tem de ser feito no OnInit()!!!
Mas como obter este valor para outro par de moedas?
Pode dizer-me, por favor?
O que _Dígitos é que eu entendo.
Como obtê-lo para outro par de moedas?
Por favor, ajudem-me.
SÍMBOLO_DIGITOS
Número de dígitos após a vírgula decimal
int
MqlTradeRequest mrequest ????
Talvez haja uma função na MQL5? Quero compreender porque recebo esta mensagem 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alerta: Pedido de colocação de encomenda de venda falhou - código de erro:4756
Olá!!! Pode dizer-me como registar a estrutura completa
MqlTradeRequest mrequest ????
Talvez haja uma função na MQL5? Quero compreender porque recebo esta mensagem 2021.02.08 21:29:20.876 my_first_ea_sartrailing (BRN,M5) Alerta: Pedido de colocação de encomenda de venda falhou - código de erro:4756
https://www.mql5.com/ru/forum/327894
E aqui está a transcrição: aquicomo remover programticamente a caixa de diálogo Alerta da janela?
E se não for difícil, por favor especifique onde está escrito sobre este asterisco como um ponteiro * na documentação. Vi-o uma vez, mas já procurei num livro de texto e não o consigo encontrar((((
Olá, é possível e como criar um algoritmo para abrir e fechar um negócio sem utilizar quaisquer indicadores?
Por exemplo, pegue em duas linhas, uma linha de tendência para cima e a segunda para baixo, coloque-as uma em cima da outra, há um ponto de intersecção entre as duas linhas, vamos supor que é a 15-30 no tempo, então como fazer a ordem abrir automaticamente ao mesmo tempo para começar em qualquer direcção, como fazer o algoritmo vai encontrar estes pontos e abrir uma posição? Gostaria de obter esclarecimentos e as vossas opiniões.
Podemos criar uma EA baseada em tal T3?não pode ser feito dessa forma( Estranho, porque é que os números primos podem ser usados neste parâmetro, mas não uma variável com uma constante numérica?
Olá!!! Tenho uma pergunta a fazer. Preciso de recolher os manipuladores de indicadores em diferentes intervalos de tempo em matrizes, mas acontece que
não consegue fazer isso ( É estranho, porque posso usar números primos neste parâmetro, mas não uma variável com uma constante numérica?
Porque tem de haver um período de tempo
Identificador
Descrição
PERÍODO_CURSO
Período actual
PERÍODO_M1
1 minuto
PERÍODO_M2
2 minutos
PERÍODO_M3
3 minutos
PERÍODO_M4
4 minutos
PERÍODO_M5
5 minutos
PERÍODO_M6
6 minutos
PERÍODO_M10
10 minutos
PERÍODO_M12
12 minutos
PERÍODO_M15
15 minutos
PERÍODO_M20
20 minutos
PERÍODO_M30
30 minutos
PERÍODO_H1
1 hora
PERÍODO_H2
2 horas
PERÍODO_H3
3 horas
PERÍODO_H4
4 horas
PERÍODO_H6
6 horas
PERÍODO_H8
8 horas
PERÍODO_H12
12 horas
PERÍODO_D1
1 dia
PERÍODO_W1
1 semana
PERÍODO_MN1
1 mês
Preciso de recolher as manipulações do indicador em diferentes intervalos de tempo em arrays, mas acontece que
não pode ser feito dessa forma( Pergunto-me porque é que se pode usar números primos neste parâmetro, mas não variáveis com constantes numéricas?
Punho indicador em MQL5 DEVE SER CRIADO UMA VEZ!!! E tem de ser feito no OnInit()!!!