[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 407
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
FLETCHING DE BASE... :-)
e também uma TERRENDA BÁSICA ))
se eur cai e dol cai, achatado
:-)
as trocas foram levadas em conta no pensamento?
Sobre o fato de que depois do for...
Sim.... Resposta "Exaustiva". Cada evento tem que ter uma razão. Os profissionais, encontrando algumas falhas de funcionamento, sabem o que devem prestar atenção. Procurei no algoritmo várias vezes, mas não consigo encontrar a causa. É por isso que recorro aos profissionais para obter conselhos - qual poderia ser a razão?
Estou tentando abrir uma ordem pendente como esta:
//+---------Функция расчета лота---------------------------------------+
duplo GetLot(int Risk)
{
duplo Free=AccountFreeMargin();
double One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double Min_Lot=MarketInfo(Symbol(),MODE_MINLOT);
double Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT);
double Step=MarketInfo(Symbol(),MODE_LOTSTEP);
double Lot=MathFloor(Free*Risk/100/One_Lot/Step)*Step;
if(Lot<Min_Lot)Lot=Min_Lot;
if(Lote>Lote_Máximo)Lote=Lote_Máximo;
if(Lote*Um_Lote>Livre)return(0.0);
retorno(Lote);
}
//+----------Функция открытия ордера-----------------------------------+
int NewOrder(int Cmd,double Lot)
{
duplo TP=0;//takeprofit
duplo SL=0;// stop loss
duplo PR=0;// preço
while(!IsTradeAllowed())Sleep(100);
if(TakeProfit<MarketInfo(Symbol(),MODE_STOPLEVEL))
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(StopLoss<MarketInfo(Symbol(),MODE_STOPLEVEL))
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(Cmd==OP_BUYSTOP)
{
PR=NormalizeDuplo(Pergunte,Dígitos);
if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
if(StopLoss>0)SL=NormalizeDouble(Bid-StopLoss*Point,Digits);
}
if(Cmd==OP_SELLSTOP)
{
PR=NormalizeDouble(Bid,Digits);
if(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Dígitos);
if(StopLoss>0)SL=NormalizeDouble(Ask+StopLoss*Point,Digits);
}
tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE);
if(tic<0)Print("Error opening order:",GetLastError()); Print("Cmd-",Cmd, "Lot=",Lot, "PR=",PR, "SL=",SL, "TP=",TP);
retorno(tique);
}
Quando o verifico, recebo uma mensagem:
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: quantidade de lotes inválidos para a função OrderSend
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend error 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: Pedido com defeito aberto:405
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216
Obviamente, é algo com o cálculo de lotes, mas eu não entendo o que)))) Favor informar
Yep.... Resposta "Exaustiva". Cada evento tem que ter uma razão. Os profissionais, quando se deparam com alguma avaria, sabem o que procurar. Procurei no algoritmo várias vezes, mas não encontrei a razão. É por isso que estou pedindo conselhos aos profissionais - qual pode ser a razão?
Bem, onde está o indicador?! (acho que por borra de café tel. https://www.mql5.comhttps://www.mql5.com/ru/)
Bem, se você listar tudo, as cartas se esgotarão.
continuar a pausa retorno ver se e quando há uma interrupção para e quando ela acontece. funciona com a abertura do bar....
"encontrando alguns problemas sabem ao que prestar atenção" eles não prestam atenção mas começam a depurar, começam a depurar seu indicador também, por exemplo, através de impressão (além disso com o de outra pessoa e assim com 15 páginas, mais de 50 chamadas funções...)
Olá.
Eu criei uma matriz:
Entretanto, por alguma razão, seu primeiro valor vai para zero (-10,09 passa a ser 0). Encontrei uma saída para a situação ao fazer isto:
Você pode me dizer do que se trata? Quero muito entender.
Agradecemos antecipadamente.
Olá.
Eu criei uma matriz:
Entretanto, por alguma razão, seu primeiro valor vai para zero (-10,09 passa a ser 0). Encontrei uma saída para a situação ao fazer isto:
Você pode me dizer do que se trata? Quero muito entender.
Agradecemos antecipadamente.
Eu não zerei com índice = 0
2011.12.06 20:00:47 MA_TF AUDUSD,M30: Alerta: -10.09
Aqui está a parte problemática do código:
Aqui está o problema descrito acima: a linha derivada do valor -10,09 não é traçada (toma o valor de MinAsia).
Aqui está a parte problemática do código:
tuz
Estou tentando abrir uma ordem pendente como esta:
//+---------Функция расчета лота---------------------------------------+
Quando o verifico, recebo uma mensagem:
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: quantidade de lotes inválidos para a função OrderSend
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend error 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: Pedido com defeito aberto:405
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216
Obviamente, é algo com o cálculo de lotes, mas eu não entendo o que)))) Favor informar