О! Está a funcionar! Obrigado, camaradas, pelas ideias!
Mas tive de a afinar um pouco. Tornou-se ainda mais fácil, sem (verdade). Embora não consiga explicar esta complicada lógica MQL).
Foi assim que eu a implementei:
datetime timeBar = iTime(_Symbol,PERIOD_CURRENT, 0);// период можно поставить по своему усмотрениюdatetimestatic timeOpen = 0;
if((PositionsTotal()==0)&&(c0>h1)&&(rGENUP>0.30)&&(timeBar > timeOpen)) // Условие для открытия позиции.
{
MqlTradeRequest request;
MqlTradeResult result;
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =1; // объем в 1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.deviation=3;
request.sl = NormalizeDouble(Ask-50*_Point,_Digits);
request.tp = NormalizeDouble(Ask+50*_Point,_Digits);
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки//--- информация об операцииPrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
// допустимое отклонение от цены
timeOpen = timeBar;
}
Pergunto-me porque haverá um código tão grande na MQL5 para abertura de posição. Ao contrário da MQL4. Em 4 é apenas uma linha. Podemos cortá-la? Por exemplo, podemos remover o manipulador de erros?
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
О! Está a funcionar! Obrigado, camaradas, pelas ideias!
Mas tive de a afinar um pouco. Tornou-se ainda mais fácil, sem (verdade). Embora não consiga explicar esta complicada lógica MQL).
Foi assim que eu a implementei:
Pergunto-me porque há tanto código na MQL5 para abrir uma posição. Ao contrário da MQL4. Em 4, é apenas uma linha. Mas aqui... Pode encurtá-lo? Por exemplo, podemos remover o manipulador de erros?
Usar classes de comércio. E o código será muito curto.
Exemplo:
//+------------------------------------------------------------------+//| Only_one_purchase.mq5 |//+------------------------------------------------------------------+#property version"1.003"#property script_show_inputs#include <Trade\Trade.mqh>
CTrade m_trade; // trading object//--- input parametersinputENUM_POSITION_TYPE InpPositionType = POSITION_TYPE_BUY; // Position Typeinputdouble InpVolume = 0.0; // Volumeinputulong m_magic = 15489; // magic number//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
m_trade.SetExpertMagicNumber(m_magic);
//--- open a positionif(InpPositionType==POSITION_TYPE_BUY)
m_trade.Buy(InpVolume);
else
m_trade.Sell(InpVolume);
}
//+------------------------------------------------------------------+
О! Está a funcionar! Obrigado, camaradas, pelas ideias!
Mas tive de a afinar um pouco. Tornou-se ainda mais fácil, sem (verdade). Embora não consiga explicar esta complicada lógica MQL).
Foi assim que eu a implementei:
Pergunto-me porque haverá um código tão grande na MQL5 para abertura de posição. Ao contrário da MQL4. Em 4, é apenas uma linha. Mas aqui... Pode ser encurtado? Por exemplo, podemos remover o manipulador de erros?
Portanto, se tiver no estado
if((PositionsTotal()==0)&&
porque é que precisa de mais verificações para um novo bar? Ou existe a opção de que a posição seja fechada no mesmo bar e a segunda abertura seja proibida?
О! Está a funcionar! Obrigado, camaradas, pelas ideias!
Mas tive de a afinar um pouco. Tornou-se ainda mais fácil, sem (verdade). Embora não consiga explicar esta complicada lógica MQL).
Foi assim que eu a implementei:
Pergunto-me porque haverá um código tão grande na MQL5 para abrir uma posição. Ao contrário da MQL4. Em 4, é apenas uma linha. Mas aqui... Pode encurtá-lo? Por exemplo, podemos remover o manipulador de erros?
Sabe, há muito tempo, quando havia MQL4, as pessoas diziam indignadamente que não lhes tinha sido dado acesso de nível inferior - para que pudessem fazer algo à sua própria maneira.
Bem, fizeram-no - agora deram acesso à OrderSend() em MQL4 - por assim dizer, implantaram a sua lógica em MQL - por isso, façam o que quiserem. Mas não - agora tenho queixas de que é demasiado complicado.
Complicado? Não há problema - dá-me classes comerciais em SB - são quase as mesmas que nas funções comerciais padrão MQL4. Na MQL4 tais classes são as funções comerciais. E em MQL5 - todos com acesso aberto.
Há muito tempo atrás, quando havia MQL4, as pessoas diziam indignadamente que não lhes davam acesso de nível inferior - para que pudessem fazer algo à sua própria maneira.
Bem, fizeram-no - agora deram acesso à OrderSend() em MQL4 - por assim dizer, implantaram a sua lógica em MQL - por isso, façam o que quiserem. Mas não - agora tenho queixas de que é demasiado complicado.
Complicado? Não há problema - dão-lhe classes de comércio em SB - são quase as mesmas que nas funções de comércio padrão MQL4. Na MQL4 tais classes são as funções comerciais. E em MQL5 - todos com acesso aberto.
Isso também não funcionou.
O que um hobgoblin gosta de quilómetros de código...
O seu problema pode ser resolvido em SEIS linhas de código, tendo em conta a declaração das variáveis.
Espero que consiga descobrir a variável de sinal.
О! Está a funcionar! Obrigado, camaradas, pelas ideias!
Mas tive de a afinar um pouco. Tornou-se ainda mais fácil, sem (verdade). Embora não consiga explicar esta complicada lógica MQL).
Foi assim que eu a implementei:
Pergunto-me porque haverá um código tão grande na MQL5 para abertura de posição. Ao contrário da MQL4. Em 4 é apenas uma linha. Podemos cortá-la? Por exemplo, podemos remover o manipulador de erros?О! Está a funcionar! Obrigado, camaradas, pelas ideias!
Mas tive de a afinar um pouco. Tornou-se ainda mais fácil, sem (verdade). Embora não consiga explicar esta complicada lógica MQL).
Foi assim que eu a implementei:
Pergunto-me porque há tanto código na MQL5 para abrir uma posição. Ao contrário da MQL4. Em 4, é apenas uma linha. Mas aqui... Pode encurtá-lo? Por exemplo, podemos remover o manipulador de erros?Usar classes de comércio. E o código será muito curto.
Exemplo:
О! Está a funcionar! Obrigado, camaradas, pelas ideias!
Mas tive de a afinar um pouco. Tornou-se ainda mais fácil, sem (verdade). Embora não consiga explicar esta complicada lógica MQL).
Foi assim que eu a implementei:
Pergunto-me porque haverá um código tão grande na MQL5 para abertura de posição. Ao contrário da MQL4. Em 4, é apenas uma linha. Mas aqui... Pode ser encurtado? Por exemplo, podemos remover o manipulador de erros?Portanto, se tiver no estado
porque é que precisa de mais verificações para um novo bar? Ou existe a opção de que a posição seja fechada no mesmo bar e a segunda abertura seja proibida?
О! Está a funcionar! Obrigado, camaradas, pelas ideias!
Mas tive de a afinar um pouco. Tornou-se ainda mais fácil, sem (verdade). Embora não consiga explicar esta complicada lógica MQL).
Foi assim que eu a implementei:
Pergunto-me porque haverá um código tão grande na MQL5 para abrir uma posição. Ao contrário da MQL4. Em 4, é apenas uma linha. Mas aqui... Pode encurtá-lo? Por exemplo, podemos remover o manipulador de erros?Sabe, há muito tempo, quando havia MQL4, as pessoas diziam indignadamente que não lhes tinha sido dado acesso de nível inferior - para que pudessem fazer algo à sua própria maneira.
Bem, fizeram-no - agora deram acesso à OrderSend() em MQL4 - por assim dizer, implantaram a sua lógica em MQL - por isso, façam o que quiserem. Mas não - agora tenho queixas de que é demasiado complicado.
Complicado? Não há problema - dá-me classes comerciais em SB - são quase as mesmas que nas funções comerciais padrão MQL4.
Na MQL4 tais classes são as funções comerciais. E em MQL5 - todos com acesso aberto.
Tire partido disso.
Há muito tempo atrás, quando havia MQL4, as pessoas diziam indignadamente que não lhes davam acesso de nível inferior - para que pudessem fazer algo à sua própria maneira.
Bem, fizeram-no - agora deram acesso à OrderSend() em MQL4 - por assim dizer, implantaram a sua lógica em MQL - por isso, façam o que quiserem. Mas não - agora tenho queixas de que é demasiado complicado.
Complicado? Não há problema - dão-lhe classes de comércio em SB - são quase as mesmas que nas funções de comércio padrão MQL4.
Na MQL4 tais classes são as funções comerciais. E em MQL5 - todos com acesso aberto.
Tire partido disso.
Docente, e Docente. Porque estás tão zangado (hoje) ©
Docent, ah Docent. Porque estás tão zangado (hoje) ©
Entre no buraco de gelo...
Portanto, se tiver uma condição
Porque é que precisa de verificar um novo bar? Ou existe a opção de a posição fechar na mesma barra e devemos desactivar uma segunda abertura?
Exactamente certo - há uma opção para fechar a posição na mesma barra.
(Cortar na nova parede. ) A "parede" é chamada "breakeven".
Foi assim que foi implementado na MQL4:
(copiei-o num sítio de que não me lembro).
Mas aqui está como é implementado em 5-PC. Como é que o faço?
Olhei através das Classes de Negociação, não o vejo aí dentro. Mas a coisa é necessária. O que dizem os profissionais?
Como posso impedir que os comércios de outros gráficos apareçam no gráfico?
Apenas os ofícios do robô que está no gráfico dado.