Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 271
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
portanto apenas o primeiro valor é preenchido com o índice [0].
obrigado. poupou-me um fim-de-semana sem dormir).
vicmos obrigado.
preenche tudo com um valor, como a função ArrayFill(...)/ ArrayFill
Bom dia a todos! Tal problema - o compilador dá um aviso. Não quero ignorá-lo, pode ajudar-me a encontrar uma saída?
Está a praguejar especificamente na última linha, diz:"possível perda de dados devido à conversão do tipo". Como normalizar correctamente o tipo real neste caso?
Bom dia a todos! Tal problema - o compilador dá um aviso. Não quero ignorá-lo, pode ajudar-me a encontrar uma saída?
Está a praguejar especificamente na última linha, diz:"possível perda de dados devido à conversão do tipo". Como normalizar correctamente o tipo real neste caso?
Bom dia a todos! Tal problema - o compilador dá um aviso. Não quero ignorá-lo, pode ajudar-me a encontrar uma saída?
Está a praguejar especificamente na última linha, diz:"possível perda de dados devido à conversão do tipo". Como normalizar correctamente o tipo real neste caso?
E mais uma coisa: ArrayMaximum e ArrayMinimum retorna o índice do elemento encontrado. Portanto, a forma correcta é esta:
Também: ArrayMaximum e ArrayMinimum retorna o índice do elemento encontrado. Assim, a forma correcta é a seguinte:
Não calcula correctamente o nível de lucro com base no montante das perdas das encomendas encerradas. Acontece que a 1ª ordem = 1; 2ª ordem = 2; 3ª ordem = 3; 4ª ordem = 4. Precisamos de calcular o número de pips para cobrir a perda em todas as encomendas anteriores e ganhar 10% da perda total.
Na verdade, o Consultor Especialista apenas considera o montante de cada ordem fechada como sendo igual à ordem supostamente pendente, ou seja, os seus cálculos mostram que se a 5ª ordem pendente for igual a 5 lotes, todas as ordens perdidas anteriormente foram iguais a 5 lotes e, portanto, a perda é calculada com o correspondente nível de lucro errado. Isto é, se o volume total de 4 encomendas equivaler realmente a 10 lotes, então o Consultor Especialista irá simplesmente multiplicar 4 encomendas pelo volume da 5ª encomenda pendente e obter um volume total de 20 lotes......O que devemos corrigir no código?
// Função que calcula o Take Level com base no Nível de Perda de negócios fechados
//=================================================================================================
duplo TakeProfitCalculate(lote duplo,tipo int)
{
int n,i;
duplo prf,ttp;
prf=MathAbs(BuyLevel-SellLevel)/Point*LOT*MarketInfo(Symbol(),MODE_TICKVALUE);//
if(No!=0) for(i=OrdersHistoryTotal()-1;i>=0;i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continua;
if(OrderSymbol()!=Symbol() || OrderMagicNumber()<MAGIC || OrderMagicNumber()>MAGIC+200 || OrderType()>OP_SELLL) continua;
n=OrderMagicNumber()-MAGIC;
prf+=(OrderProfit()+OrderSwap()+OrderComission()));
if(n==0) quebra;
}
prf=MathAbs(prf*(100+ProfitPercent)/100));
ttp=prf*Point/(LOT*MarketInfo(Symbol(),MODE_TICKVALUE))
if(type==OP_BUY) return(NRu(BuyLevel+ttp)); else return(NRd(SellLevel-ttp))
}