Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 769

 
Vitaly Muzichenko:

Obrigado pela resposta, mas como fazê-lo funcionar, não tenho ideia

Vou tentar uma última vez Não tenho uma conta com tais ferramentas indicadas no problema, mas aqui está um guião a trabalhar em forex. O resultado coincide com os valores que aparecem como uma dica como nesta captura de ecrã

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

FAQ de Iniciantes MQL5 MT5 MetaTrader 5

Vitaly Muzichenko, 2017.07.26 23:56

Tenho uma compra de lote aberta, e quando ponho o Takeprofit, o terminal recalcula em dólares, porque a minha conta é denominada em dólares,

Mas quando o calculo utilizando a fórmula (close_price-open_price)*Lots*TickPrice/TickSize, então o meu valor de takeprofit é calculado em rublos.

No gráficoSBRF-9.17

Se dividirmos o rublo por taxa de dólar 174,99/USDRUR = $2,93, obteremos lucros em dólares.

Como escrevê-la programticamente e fazê-la calcular-se a si própria?

/********************Script program start function*******************/
void OnStart()
{
 for(int i = 0; i < PositionsTotal(); i++)
  {
   ulong positionTicket = PositionGetTicket(i);
   string positionSymbol = PositionGetString(POSITION_SYMBOL);
   ENUM_POSITION_TYPE positionType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
   double positionTP = PositionGetDouble(POSITION_TP);
   double positionOpen = PositionGetDouble(POSITION_PRICE_OPEN);
   double point = SymbolInfoDouble(positionSymbol, SYMBOL_POINT);
   int profitPoint = int(fabs(positionOpen-positionTP)/point);
   double positionProfit = PositionGetDouble(POSITION_PROFIT);
   string symbolCurrencyProfit = SymbolInfoString(positionSymbol, SYMBOL_CURRENCY_PROFIT);
   int currentProfit = positionType == POSITION_TYPE_SELL
    ? int((positionOpen-PositionGetDouble(POSITION_PRICE_CURRENT))/point)
    : int((PositionGetDouble(POSITION_PRICE_CURRENT)-positionOpen)/point);
   Print("PositionSymbol ", positionSymbol);
   Print("SymbolCurrencyProfit ", symbolCurrencyProfit);
   Print("PositionTP ", DoubleToString(positionTP, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionOpen ", DoubleToString(positionOpen, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionProfit ", DoubleToString(positionProfit, 2));
   Print("ProfitPoint ", profitPoint);
   Print("CurrentProfit ", currentProfit);
   Print("ИТОГО ", positionProfit/currentProfit*profitPoint);
  }
   
}/*******************************************************************/

Tenho 2 posições em aberto. Aqui está o resultado do guião

2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURGBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit GBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 0.88697
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 0.89197
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit 14.47
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit 109
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 66.37614678899082
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURJPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit JPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 130.940
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 130.440
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit -0.90
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit -9
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 50.0


MAS!!! Infelizmente, quando a posição for encerrada, ninguém adivinhará qual será a cotação da moeda de lucro para depositar moeda. A este respeito, é impossível determinar um valor absolutamente exacto. Bem, não há forma de olhar para o futuro.

 
Vitaly Muzichenko:

Não, para calcular o lucro/perda antes de abrir uma posição, mas na moeda do depósito, não no instrumento

Porque precisa de conhecer o lucro/perda no seu caso, não para controlar os riscos? - Estava apenas curioso - a moeda do depósito é clara, embora não seja clara em que condições do mundo real seria utilizada.
 
Alexey Viktorov:

Tentarei alcançar uma última vez... Não tenho uma conta com as ferramentas mencionadas no problema, mas aqui está um guião que funciona em forex. O resultado coincide com os valores que aparecem como uma dica como nesta captura de ecrã


Tenho 2 posições em aberto. Aqui está o resultado do trabalho do guião


MAS!!! Infelizmente, quando a posição for encerrada, ninguém adivinhará qual será a cotação da moeda de lucro para depositar moeda. A este respeito, é impossível determinar um valor absolutamente exacto. Bem, não há forma de olhar para o futuro.

Aqui está o que o guião mostrou:

2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionSymbol SBRF-9.17
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        SymbolCurrencyProfit RUR
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionTP 16777
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionOpen 16677
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionProfit 1.07
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ProfitPoint 100
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        CurrentProfit 64
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ИТОГО 1.671875
 
Vitaly Muzichenko:

Foi isto que o guião mostrou:

Vitaly, você mesmo pode descobrir... O princípio é mais simples do que 3 rublos...

PositionGetDouble(POSITION_PROFIT);

Devolve o lucro da posição na moeda do depósito. Se dividirmos este valor pelo número de pontos entre a abertura e o preço actual, obtemos o valor dos pontos na moeda de depósito... Resta apenas multiplicar o valor pelo número de pips desde a abertura até ao tp e pronto... Mas como não sou capaz, e demasiado preguiçoso para registar uma nova conta para isto, é preciso descobrir por si próprio. Mas simplesmente não sabe o que deve obter, como pode saber se o resultado é correcto ou não? Poderá ter de imprimir alguns valores adicionais para compreender. O que conta como uma cláusula? Não sei, talvez tenha de ser tido em conta de alguma forma. Ou a dimensão do contrato padrão é de alguma forma tida em conta. Não sei.

 

Como compreender o gráfico cinzento


em modo de imagem normal


 

Em MT4 aponta-se o rato sobre o gráfico e pode-se ver qual é o ponto - mas aqui a imagem é estática - feia.

 
Como traçar a optimização através de um indicador específico (lucro/perda/fv)?
 
Olá a todos. Tenho um problema, carreguei dinheiro para a minha conta MQL5 e descarreguei a aplicação MetaTrader 5, mas não posso transferir o dinheiro para ela para começar a negociar. Preciso de ajuda.
 
Minora125:
Boa tarde a todos . Tenho um problema, carreguei dinheiro para a minha conta MQL5 e também descarreguei a aplicação MetaTrader 5, mas não posso transferir o dinheiro para ela para começar a negociar. Preciso de ajuda.

A MQL5 não é uma empresa de corretagem, não lhe permite negociar com uma conta real. Para dinheiro transferido pode utilizar serviços: Freelance, Market, Cloud.

Envie o seu pedido ao Service Desk (há um link no seu perfil) e peça um reembolso como dinheiro transferido indevidamente.

 

Depois de um passe no testador, abre-se um gráfico com comércios, como é que eu desligo isto?

Razão: