[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 888
Noterday: Você pode me dizer a função que calcula o volume máximo possível de abertura de pedidos?
Deixe-me dar-lhe uma vara... :) A função abaixo tem todos os dados necessários para calcular os parâmetros que você precisa. Sou tão preguiçoso, que nem consigo bater nas chaves.
Você mesmo pode encontrar o que precisa e modificá-lo... O código em si é tão simples e acessível que ninguém terá dificuldade em refazê-lo...
// ==========================================================================// ------------ Функция рассчёта величины лота для открытия позиции ---------// Если лот превышает возможный для открытия позы, то он корректируется // ==========================================================================double CorrectLots(double lt, double divider=4.0) // lt = проверяемый лот, divider = на сколько разделить
{ // свободные средстваdouble ltcorr;
double pnt = MarketInfo(Symbol(),MODE_POINT);
double mspr = MarketInfo(Symbol(),MODE_SPREAD);
double dig = MarketInfo(Symbol(),MODE_DIGITS);
double MaxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double MinLot = MarketInfo(Symbol(),MODE_MINLOT);
double StpLot = MarketInfo(Symbol(),MODE_LOTSTEP);
double OneLot = MarketInfo(Symbol(),MODE_MARGINREQUIRED);
double TradeMrg = NormalizeDouble(AccountFreeMargin()/divider,dig); // Свободные средства, разрешенные к торговле
lt=MathAbs(lt);
ltcorr=lt; // Зададим начальное значением ltcorr равным значению ltif (lt>=MaxLot) ltcorr=MaxLot; // Проверим превышение допустимых ...if (lt<=MinLot) ltcorr=MinLot; // ... значений лотаdouble Money=lt*OneLot+mspr*pnt; // Вычисляем стоимость открываемой позыif (Money<TradeMrg) // Если свободных средств больше, чем цена позиции -
{
return(ltcorr); // ... возвращаем неизменённый лот
}
elseif (Money>=TradeMrg) // Если цена позиции равна или больше, чем есть свободных средств, то ...
{
ltcorr=MathAbs(MathFloor(TradeMrg/OneLot/StpLot)*StpLot); // ... рассчитаем допустимый лотdouble MoneyCorr=ltcorr*OneLot+mspr*pnt;
Print("Func CorrectLots: лот ",lt," скорректирован до ",ltcorr,
" Стоимость позы до корректировки = ",Money,
" Стоимость позы после корректировки = ",MoneyCorr
);
return(ltcorr); // ... и вернём его значение
}
Print("Func CorrectLots: лот вернули без изменений");
return(ltcorr); // Возврат изначального лота в непредусмотренных случаях с сообщением
}
Uma pergunta...
Por que você precisa de uma profissão como a de Hitler no final da guerra? Ele recrutou crianças para a Juventude Hitleriana, por assim dizer, a carne para uma dose do cartucho de Fausto.
artmedia70: Deixe-me dar-lhe uma vara... :) A função abaixo tem todos os dados para calcular os parâmetros que você precisa. Sou tão preguiçoso, preguiçoso demais para bater até mesmo nas chaves...
Você mesmo pode encontrar o que precisa e modificá-lo... O código em si é tão simples e acessível que ninguém terá dificuldade em refazê-lo...
Uma pergunta...
Por que você precisa de uma profissão como a de Hitler no final da guerra? Ele recrutou crianças para a Juventude Hitleriana, por assim dizer, a carne para uma dose do cartucho de Fausto.
Não me soa nada?????
IMHO, é claro...
Obrigado!
Não vai abrir com o volume máximo, apenas precisa calculá-lo com base no tamanho do Depósito, para outras operações matemáticas =))
Você pode sugerir um código ou uma ramificação sobre como memorizar os cruzamentos de linhas indicadoras com o preço. já o vi em algum lugar, mas não consigo encontrá-lo. Eu o vi em algum lugar, mas não consigo encontrá-lo.
Não sei se estou interessado, mas estou mais interessado em algo como isto:
int start()
{
double LineX = iCustom ("EURUSD", Period_H1, "Indicator",0,0);
double lineY = iCustom ("EURUSD", Period_H1, "Indicator",1,0);
double priceA = Ask;
double priceB = Bid;
double intersectionX = (LineX == priceA) ;
double intersectionY = (LineY == priceB) ;
// а так же еще определить, какое пересечение последнее, а какое предпоследние // intersectionX = последнее пересечение и на оборот// intersectionY = предпоследние пересечение и на оборот// то есть я понимаю логику, а вот связать в коде не могу.//произошло intersectionX, то intersectionFirst = intersectionX; intersectionSecond = intersectionY;// произошло intersectionY, то intersectionFirst = intersectionY; intersectionSecond = intersectionX;
}
Você pode sugerir um código ou uma ramificação sobre como memorizar os cruzamentos de linhas indicadoras com o preço. já o vi em algum lugar, mas não consigo encontrá-lo. Eu o vi em algum lugar, mas não consigo encontrá-lo.
quero saber se a linha indicadora cruzou o preço, mas estou mais interessado nisto:
qualquer cruzamento é melhor considerado como uma diferença entre o preço (Ask/Bid) e a linha indicadora, ou seja
se (Ask-iCustom ("EURUSD", Período_H1, "Indicador",0,0) > 0) Comentário("Preço acima do indicador"); ou Comentário("Preço abaixo do indicador");
Se você comparar a diferença destes valores, você não precisa normalizá-los para uma comparação adequada
particularmente para sua pergunta - um cruzamento da linha indicadora pelo preço é aquele momento em que a diferença Ask- -iCustom() estava abaixo de zero durante o cálculo anterior e depois ficou maior, ou vice versa
como você calcula este momento é seu próprio negócio - talvez no bar anterior, ou a cada carrapato, mas tais combinações:
Você será conduzido ao labirinto da matemática discreta mais rapidamente do que você pode obter o resultado desejado - a expressão entre parênteses será 0 ou 1, o que corresponde à representação numérica de falso e verdadeiro
qualquer travessia é otimamente considerada como a diferença de preço (Ask/Bid) e a linha indicadora, ou seja
se (Ask-iCustom ("EURUSD", Período_H1, "Indicador",0,0) > 0) Comentário("Preço acima do indicador"); ou Comentário("Preço abaixo do indicador");
Se você comparar a diferença destes valores, você não precisa normalizá-los para uma comparação adequada
particularmente para sua pergunta - um cruzamento da linha indicadora pelo preço é aquele momento em que a diferença Ask- -iCustom() estava abaixo de zero durante o cálculo anterior e depois ficou maior, ou vice versa
Como você calcula este momento é de sua própria conta - seja na barra anterior, ou a cada tique, mas tais combinações:
Você será conduzido ao labirinto da matemática discreta mais rapidamente do que você pode obter o resultado desejado - a expressão entre parênteses será 0 ou 1, o que corresponde à representação numérica de falso e verdadeiro
Isto é, se eu entendi corretamente, eu posso fazer isto:
и я потом смогу intersectionY использовать только тогда когда оно TRUE, если FALSE, то такой код (intersectionY > Ask) не сработает, правильно я понимаю!?
Estou vendo.
A propósito, existe um timer na MQL4 ou apenas na MQL5?
Provavelmente, apenas estas funções:
https://www.mql5.com/ru/search?utm_campaign=MQL4.community
https://www.mql5.com/ru/search?utm_campaign=MQL4.communityPergunta para os aksakals
O testador parou de trabalhar de repente, não riscando nenhum dado histórico.
O que devo fazer com ele?
para sua informação: o arquivo de citações foi baixado
Ele me ajudou a reiniciar o terminal e excluir as aspas baixadas anteriormente na pasta: C:\Program Files\MetaTrader - Alpari-Micro2
em seguida, recarregou o arquivo de cotações
Você pode me dizer a função que calcula o volume máximo possível de abertura de pedidos?
A função abaixo tem todos os dados necessários para calcular os parâmetros que você precisa. Sou tão preguiçoso, que nem consigo bater nas chaves.
Você mesmo pode encontrar o que precisa e modificá-lo... O código em si é tão simples e acessível que ninguém terá dificuldade em refazê-lo...
Uma pergunta...
Por que você precisa de uma profissão como a de Hitler no final da guerra? Ele recrutou crianças para a Juventude Hitleriana, por assim dizer, a carne para uma dose do cartucho de Fausto.
Não me soa nada?????
IMHO, é claro...
Deixe-me dar-lhe uma vara... :)
A função abaixo tem todos os dados para calcular os parâmetros que você precisa. Sou tão preguiçoso, preguiçoso demais para bater até mesmo nas chaves...
Você mesmo pode encontrar o que precisa e modificá-lo... O código em si é tão simples e acessível que ninguém terá dificuldade em refazê-lo...
Uma pergunta...
Por que você precisa de uma profissão como a de Hitler no final da guerra? Ele recrutou crianças para a Juventude Hitleriana, por assim dizer, a carne para uma dose do cartucho de Fausto.
Não me soa nada?????
IMHO, é claro...
Obrigado!
Não vai abrir com o volume máximo, apenas precisa calculá-lo com base no tamanho do Depósito, para outras operações matemáticas =))
Obrigado!
Não vou abrir com o volume máximo, só preciso calculá-lo com base no tamanho do Depo para outras operações matemáticas =))
para COMPRAR:
NormalizeDouble(AccountFreeMargin()-AccountFreeMarginCheck(Symbol(),OP_BUY,lot),2)
Para VENDER:
NormalizeDouble(AccountFreeMargin()-AccountFreeMarginCheck(Symbol(),OP_SELLL,lot),2);
lote - a variável que contém o volume do pedido
o resultado do cálculo deve ser verificado para >0
https://www.mql5.com/ru/search
para COMPRAR:
NormalizeDouble(AccountFreeMargin()-AccountFreeMarginCheck(Symbol(),OP_BUY,lot),2);
Para VENDER:
NormalizeDouble(AccountFreeMargin()-AccountFreeMarginCheck(Symbol(),OP_SELLL,lot),2);
lote - variável com o volume do pedido
https://www.mql5.com/ru/search
... Bem, Igor, você está com pressa... :)
Antes que eu tivesse tempo de colocar meus dedos no teclado, você já tinha escrito de volta... :)
Hi!
Você pode sugerir um código ou uma ramificação sobre como memorizar os cruzamentos de linhas indicadoras com o preço. já o vi em algum lugar, mas não consigo encontrá-lo. Eu o vi em algum lugar, mas não consigo encontrá-lo.
Não sei se estou interessado, mas estou mais interessado em algo como isto:
Hi!
Você pode sugerir um código ou uma ramificação sobre como memorizar os cruzamentos de linhas indicadoras com o preço. já o vi em algum lugar, mas não consigo encontrá-lo. Eu o vi em algum lugar, mas não consigo encontrá-lo.
quero saber se a linha indicadora cruzou o preço, mas estou mais interessado nisto:
qualquer cruzamento é melhor considerado como uma diferença entre o preço (Ask/Bid) e a linha indicadora, ou seja
se (Ask-iCustom ("EURUSD", Período_H1, "Indicador",0,0) > 0) Comentário("Preço acima do indicador"); ou Comentário("Preço abaixo do indicador");
Se você comparar a diferença destes valores, você não precisa normalizá-los para uma comparação adequada
particularmente para sua pergunta - um cruzamento da linha indicadora pelo preço é aquele momento em que a diferença Ask- -iCustom() estava abaixo de zero durante o cálculo anterior e depois ficou maior, ou vice versa
como você calcula este momento é seu próprio negócio - talvez no bar anterior, ou a cada carrapato, mas tais combinações:
Você será conduzido ao labirinto da matemática discreta mais rapidamente do que você pode obter o resultado desejado - a expressão entre parênteses será 0 ou 1, o que corresponde à representação numérica de falso e verdadeiroqualquer travessia é otimamente considerada como a diferença de preço (Ask/Bid) e a linha indicadora, ou seja
se (Ask-iCustom ("EURUSD", Período_H1, "Indicador",0,0) > 0) Comentário("Preço acima do indicador"); ou Comentário("Preço abaixo do indicador");
Se você comparar a diferença destes valores, você não precisa normalizá-los para uma comparação adequada
particularmente para sua pergunta - um cruzamento da linha indicadora pelo preço é aquele momento em que a diferença Ask- -iCustom() estava abaixo de zero durante o cálculo anterior e depois ficou maior, ou vice versa
Como você calcula este momento é de sua própria conta - seja na barra anterior, ou a cada tique, mas tais combinações:
Você será conduzido ao labirinto da matemática discreta mais rapidamente do que você pode obter o resultado desejado - a expressão entre parênteses será 0 ou 1, o que corresponde à representação numérica de falso e verdadeiroIsto é, se eu entendi corretamente, eu posso fazer isto: