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

 

Olá. Você pode me ajudar a descobrir isso? O código deve exibir uma linha no nível global TakeProfit . Não consigo encontrar o erro.

Agradecemos antecipadamente.

void Drawline_Per_B (int Drawline_Per, double Balans, double Free, double Global_TakeProfit)  {
    Balans=AccountBalance();//Баланс счёта
    Free=AccountEquity();//Текущее количество денег в статье "Средства"
    double q;
    double SchBuyLs=SchBuyLs_b(); сумма лот для баев
    double SchSellLs=SchSellLs_b(); сумма лот для сейлов  
    double ad.QuotePoint   = MarketInfo ( Symbol () , MODE_POINT     );
    double ad.QuoteTick    = MarketInfo ( Symbol () , MODE_TICKSIZE  );
    double ad.NominalTick  = MarketInfo ( Symbol () , MODE_TICKVALUE );
    double ad.NominalPoint = ad.NominalTick  * ad.QuotePoint / ad.QuoteTick ; // Цена 1 пункта для стандартного лота в валюте депозита
    q =  NormalizeDouble(Bid + (Balans-Free+Balans/100*Global_TakeProfit)/ad.NominalPoint*(SchBuyLs-SchSellLs)*Point,Digits);
    Drawline_Per("%_LINE");
    ObjectSet( "%_LINE", OBJPROP_PRICE1, q);
  }
 
Não sei o que você está contando ali, mas o número de pontos é um inteiro. Faça um tipo int e você não precisará de normalização.
q =  (Balans-Free+Balans/100*Global_TakeProfit)/PP*(SchBuyLs-SchSellLs);  //число пунктов до наступления условия  Global_TakeProfit
 

Obrigado pelo conselho.

Encontradas as falhas, tudo funciona.

 

Por favor, ajude com os fractais

maxF = NormalizeDuplo (iFractals(NULL, 0, MODE_UPPER,1),5);
minF = NormalizeDuplo (iFractals(NULL, 0, MODE_LOWER,1),5);

Por que não vejo
maxF > Bid ou minF > Bid executando?

Se <, ela será executada.

Sem o NormalizeDouble, a mesma coisa. Há algo que eu não entendo sobre os fractais?

 
lia:

Por favor, ajude com os fractais.

maxF = NormalizeDuplo (iFractals(NULL, 0, MODE_UPPER,1),5);
minF = NormalizeDuplo (iFractals(NULL, 0, MODE_LOWER,1),5);

Por que não consigo ver a execução de
maxF > Licitação ou minF > Licitação?

Se <, ela é executada.

Sem NormalizeDuplo é o mesmo. Eu não entendo algo com fractais?


Veja esta e a próxima página - exiba de forma semelhante suas condições.
 

Você poderia sugerir uma função para uma EA em MT4 que devolva o lucro da última ordem fechada, ou se a última ordem fechada com lucro ou prejuízo?

PS Eu não encontrei tal função em Kim.

 
Sancho77:

Você pode sugerir uma função que devolva o lucro da última ordem fechada, ou se a última ordem fechada com lucro ou prejuízo?

O PS Kim não encontrou tal função.

Igor Kim tem tais funções. Mas suas funções estão um pouco exageradas em relação à versatilidade. Eu posso rapidamente criar essa função para você aqui.
Pergunta: Em que consiste o lucro? Em pontos ou na moeda do depósito?
 
artmedia70:
Igor Kim tem tais características. No entanto, suas funções são um pouco excessivas para a versatilidade. Eu posso rapidamente criar essa função para você aqui.
Pergunta: Em que consiste o lucro? Em pontos ou na moeda do depósito?
Eu ficaria grato se você me dissesse! Não importa se o lucro está em pontos ou em moeda, o fato importante: um negócio foi fechado em lucro ou em prejuízo. No que me diz respeito, não faz diferença se é em moeda ou em pips.
 
Sancho77:
Agradeceria se você pudesse escrevê-lo! Não importa se o lucro está em pips ou em moeda, o fato importante é que o negócio foi fechado em lucro ou em prejuízo. Na minha opinião, não faz diferença em moeda ou pips.
//+----------------------------------------------------------------------------+
bool LossLastPose(string sy, int op, int mn) {
   datetime t;
   int      i, j;
   for (i=0; i<OrdersHistoryTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
         if (OrderType()!=op)          continue;
         if (OrderSymbol()!=sy)        continue;
         if (OrderMagicNumber()!=mn)   continue;
         if (OrderCloseTime()>t) {
            t=OrderCloseTime();
            j=i;
            }
         }
      }
   if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) 
      if (OrderProfit()<0) return(true);
   return(false);
}
//+----------------------------------------------------------------------------+

Nós o chamamos assim:

Para verificar a última posição fechada Comprar sobre o símbolo atual. A função voltará a ser verdadeira se com prejuízo e falsa se com lucro.

if (LossLastPose(Symbol(), OP_BUY, Magic)) {код, если последняя позиция закрылась с убытком}
else {Код, если последняя позиция закрылась с прибылью}

A variável mágica é uma magia da EA, ela está escrita em variáveis globais da EA.

 
artmedia70:

Nós o chamamos assim:

Para verificar a última posição fechada Comprar sobre o símbolo atual. A função voltará a ser verdadeira se com prejuízo e falsa se com lucro.

A variável mágica é o magik da EA, escrito nas variáveis globais da EA.



Muito obrigado!
Razão: