[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 28

 
Onde está o erro de "contagem de parâmetros errados" aqui?
MA1 = iMA(NULL, 0, MA_Period1, MODE_SMA, PRICE_CLOSE,0);
 
Сvovan-gogan:
Onde está o erro de "contagem de parâmetros errados" aqui?


Boa tarde! Obrigado, senhor, por fazer a pergunta. Feliz por estar a serviço.

Nós nos curvamos na cintura e respondemos de forma inteligente:

Obviamente está faltando um parâmetro no iMA:

duplo iMA( símbolo de corda, período int, período int, int ma_shift, int ma_method, int aplicado_preço, int shift)
Cálculo da média móvel.
Parâmetros:
símbolo - Símbolo nome do símbolo, em cujos dados o indicador será calculado. NULL significa símbolo atual.
cronograma - Período. Pode ser um dos períodos do gráfico. 0 significa o período do gráfico atual.
período - Período de cálculo da média móvel.
ma_shift - Mudança de indicador em relação à tabela de preços.
ma_método - Método de cálculo da média. Pode ser qualquer um dos valores dos métodos de Moving Average.
preço_aplicado - Preço utilizado. Pode ser qualquer uma das constantes de preço.
turno - Índice do valor obtido do buffer de indicadores (deslocamento relativo à barra atual pelo número especificado de períodos de retorno).
--------------------------

O mais provável é que o parâmetro esteja faltando:

ma_shift - Deslocamento do indicador em relação à tabela de preços.

Aguardando ansiosamente suas próximas perguntas!

 
Muito obrigado)
 

Eu preciso de sua ajuda.

Esta expressão precisa ser traduzida

OrderOpenPrice()-OrderClosePrice()
em número de pontos e calcular o lucro ou parada para cada posição, dependendo do lote. E finalmente imprimir o montante total em % do lucro ou parar
 
Vodya:

Eu preciso de sua ajuda.

Preciso traduzir esta expressão

para o número de itens ......


Primeiro selecione o item desejado.

( OrderOpenPrice() - OrderClosePrice() ) /Point - este será o lucro/perda da posição selecionada em pips

---------------

Na verdade, para seus cálculos, é melhor usar as funções apropriadas da I. Kim. E a tarefa se tornará várias vezes mais fácil.

https://www.mql5.com/ru/forum/131859

https://www.mql5.com/ru/forum/131859/page3#434225

 
leonid553:


Primeiro selecione a posição correta.

( OrderOpenPrice() - OrderClosePrice() ) * Ponto - isto será lucro/perda da posição selecionada em pontos

---------------

Na verdade, para seus cálculos, é melhor usar as funções apropriadas da I. Kim. E a tarefa se tornará várias vezes mais fácil.

https://www.mql5.com/ru/forum/131859

https://www.mql5.com/ru/forum/131859/page3#434225


Obrigado. Mas não encontrei o que eu precisava em sua função. E neste caso ( OrderOpenPrice() - OrderClosePrice() ) * Ponto I faz ( OrderOpenPrice() - OrderClosePrice() ) / Ponto

Quando você multiplica 000000000000000000, você recebe

 

Sim, claro - eu cometi um erro - você tem que dividir por ponto, não multiplicar de jeito nenhum!

Por função.

É muito simples. Por exemplo. Você precisa saber o lucro (ou prejuízo) atual na moeda de depósito de negócios abertos (vamos assumir) - Bai-posições em EURUSD e Sell-posições em GBPUSD.

Assuma a função https://www.mql5.com/ru/forum/131859/page3#434223

e copie-o até o final de seu código (fora da função START)

Então, o lucro atual em moeda de suas posições será (definido dentro de START):

duplo PROFIT_ EURUSD = GetProfitOpenPosInCurrency(EURUSD, OP_BUY, -1) ;

duplo PROFIT_FUNTDOLLAR = GetProfitOpenPosInCurrency(GBPUSD, OP_SELLL, -1) ;

Se você especificou um magik ao abrir estas posições, especifique o magik em vez de "-1".

Se você precisa saber o lucro de uma posição de acordo com o símbolo atual, ou seja, no gráfico, no qual a EA foi colocada e está funcionando, então :

duplo PROFIT_NULL = GetProfitOpenPosInCurrency(NULL, OP_SELLL, -1) ;

 
leonid553:

Sim, claro - eu cometi um erro - você tem que dividir por ponto, não multiplicar de jeito nenhum!

Por função.

É muito simples. Por exemplo. Você precisa saber o lucro (ou prejuízo) atual na moeda de depósito de negócios abertos (vamos assumir) - Bai-posições em EURUSD e Sell-posições em GBPUSD.

Assuma a função https://www.mql5.com/ru/forum/131859/page3#434223

e copie-o até o final de seu código (fora da função START)

Então, o lucro atual em moeda de suas posições será (definido dentro de START):

duplo PROFIT_ EURUSD = GetProfitOpenPosInCurrency(EURUSD, OP_BUY, -1) ;

duplo PROFIT_FUNTDOLLAR = GetProfitOpenPosInCurrency(GBPUSD, OP_SELLL, -1) ;

Se você especificou um magik ao abrir estas posições, especifique o magik em vez de "-1".

Se você precisa saber o lucro de uma posição de acordo com o símbolo atual, ou seja, no gráfico, no qual a EA foi colocada e está funcionando, então :

duplo PROFIT_NULL = GetProfitOpenPosInCurrency(NULL, OP_SELLL, -1) ;


Obrigado pelo conselho.

Mas quero definir o lucro como uma porcentagem do depósito inicial e a perda do depósito a ser calculada. Funciona, mas somente para cada comércio, não é possível calcular a perda total.

 
Vodya:


Obrigado pela dica.

Mas quero calcular o lucro como uma porcentagem do depósito inicial e a perda do depósito. Posso calculá-lo, mas somente para cada negócio, ele não funciona no total.

Abaixo estão as funções para calcular os Lucros e Perdas.

Se você tiver o valor do tamanho/perda, você pode calcular o que é como uma porcentagem do depósito.

 double Profit(){
   double profit=0; 
   for(int i=OrdersHistoryTotal()-1; i>=0; i--){
     if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))continue; 
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue;
     if(OrderType()>1)continue;
     if(OrderProfit()>0)profit+=OrderProfit();
    }        
 return(profit);} 

 double Loss(){
   double loss=0; 
   for(int i=OrdersHistoryTotal()-1; i>=0; i--){
     if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))continue; 
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue;
     if(OrderType()>1)continue;
     if(OrderProfit()<0)loss+=OrderProfit();
    }        
 return(loss);} 
 
charter:

Abaixo estão as funções para calcular Lucros e Perdas.

Com o tamanho/valor do Lucro e Perda, você pode calcular o que isso representa como uma porcentagem do depoimento.


Obrigado.

Mas quando você compila nesta linha.

double Profit(){

ele vem com "(' - definição de função inesperada

e este "}". - parênteses desequilibrados onde está o último retorno(0).

Onde deve ser colado? Talvez eu o tenha colocado no lugar errado