[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 287
Em geral, é hora de os desenvolvedores da MT criarem uma seção na documentação e explicarem em detalhes o problema e a necessidade de usar a normalização.
Há apenas um modesto exemplo sem ênfase na documentação para esta situação:
int i = 1 / 2.0; // выражение приводится к типу double, затем приводится к целевому типу int, результат: 0
Quando a Ordem 3 (Vender) é fechada, aquela Ordem 1 (Comprar) ainda semáforos que foi fechada em Stop Loss e assim 2 ordens seguidas são colocadas, porque Total=1.
ou seja, procuro uma solução para este problema, ou seja, o que substituir o total 1 para se livrar de tal efeito
Você pode me dizer se o script pode abrir ordens não apenas na janela do gráfico ao qual está anexado, mas também em outros pares de moedas, se estiver devidamente prescrito em quais outros pares de moedas você precisa abrir?
CreAndr: Você pode me dizer se o script pode abrir ordens não apenas na janela do gráfico ao qual está anexado, mas também em outros pares de moedas, se estiver devidamente prescrito em quais outros pares de moedas você precisa abrir?
Não, o que você destacou será devolvido a partir da ferramenta atual. Licitações, pedidos, dígitos, etc., devem ser solicitados com MarketInfo especificando explicitamente a ferramenta
2011.03.30 08:40:21 USDCAD,M1: 3 4 4.00000000 ask=0.9729 bid=0.9725
funciona assim
funciona assim!
Obrigado!
Em geral, é hora de os desenvolvedores da MT criarem uma seção na documentação e explicarem em detalhes o problema e a necessidade de usar a normalização.
Há apenas um modesto exemplo sem ênfase na documentação para esta situação:
Seção "Type Approach" https://docs.mql4.com/ru/basis/types/casting
À FoxUA.
Quando a Ordem 3 (Vender) é fechada, aquela Ordem 1 (Comprar) ainda semáforos que foi fechada em Stop Loss e assim 2 ordens seguidas são colocadas, porque Total=1.
ou seja, procuro uma solução para este problema, ou seja, o que substituir o total 1 para se livrar de tal efeito
Você pode me dizer se o script pode abrir ordens não apenas na janela do gráfico ao qual está anexado, mas também em outros pares de moedas, se estiver devidamente prescrito em quais outros pares de moedas você precisa abrir?
talvez
talvez
//--------------------------------------------------------------------
extern double TakeProfit = 1000;
extern double Lots = 0.01;
extern double StopLoss = 500.0;
extern int MagNum = 1974;
int slip = 100;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
//::::Открытие и выставление ордеров
OrderSend("EURUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("GBPUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("USDJPY",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
OrderSend("USDCHF",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
return (0);
}
mas esta opção, funcionará ou não?
OrderSend("EURUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits)," CleverEA",MagNum,0,Green);
mas esta opção, funcionará ou não?
Não, o que você destacou será devolvido a partir da ferramenta atual. Licitações, pedidos, dígitos, etc., devem ser solicitados com MarketInfo especificando explicitamente a ferramenta
//--------------------------------------------------------------------
extern double TakeProfit = 1000;
extern double Lots = 0.01;
extern double StopLoss = 500.0;
extern int MagNum = 1974;
int slip = 100;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
//::::Открытие и выставление ордеров
OrderSend("EURUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("GBPUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("USDJPY",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
OrderSend("USDCHF",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
return (0);
}
Mas esta opção vai funcionar ou não?
Não vai. Você tem que usar a função MarketInfo https://docs.mql4.com/ru/common/MarketInfo.
há exemplos de seu problema na página