Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1822

 
Mihail Matkovskij #:

Então SymbolInfoDouble

Por que não de imediato?

 
Alexander Avksentyev #:

Outra pergunta

O cálculo do lucro em pips é um OrderProfit * Point?

OrderProfit Retorna valor do lucro líquido, (aqueles na moeda do depósito)
Ponto-
Tamanho do ponto do instrumento atual na moeda da cotação

Tudo de referência

 
Andrey Sokolov #:

OrderProfit Devolve o valor do lucro líquido, (aqueles na moeda do depósito)
Ponto - Tamanho atual do instrumento na moeda da cotação

Tudo de referência

Concordo, eu li a referência.

Multipliquei o lucro pelo Ponto e obtive 0,00001 ou menos.

 
Alexander Avksentyev #:

Concordo, eu li a referência.

Multiplicou o lucro por ponto e obteve 0,00001 ou menos.

É uma coisa estranha de se fazer

 
Alexander Avksentyev #:

Outra pergunta

É o cálculo do lucro em pips um OrderProfit * Ponto .

O preço pode passar de 20 pips e dar 50$ de lucro.

Pode passar em 5 pontos, mas o lucro será de $80

Isto é o mesmo para cada símbolo, com o franco o lucro será maior do que com o canadense na mesma passagem em pips

 
Artyom Trishkin #:

Por que não de imediato?

Eu escrevi um exemplo simples on-line. Eu nem entrei no editor. Alexander é um programador novato e ele não precisa de nenhuma complexidade extra. Dê uma olhada em seu código acima. Mas se estamos falando do desenvolvimento de um robô multisímbolo, você pode usar SymbolInfoDouble. Quem o impede de fazer isso?

 
Mihail Matkovskij #:

A função SymbolInfoTick escreve os dados do tick em uma estruturaMqlTick especial, a partir dos campos dos quais ele pode ser recuperado.

graças a

 

Outra pergunta surgiu

Eu fiz a inscrição no canto

//+-----------------------------------------------------------------------------------------------+
int OnInit()
  {
Start          = TimeCurrent();
MaxMartinLot   = Lot*MathPow(1.4,OrdersClose);
MaxMartinLot2  = Lot*MathPow(K_Martin2,OrdersClose2);
AC             = StringConcatenate(" ", AccountCurrency());
int Y          = 20;
DrawLABEL("lab_Take",1,5,Y,clrLime,"LOT: "); 
return(INIT_SUCCEEDED);
  }
//+-----------------------------------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+-----------------------------------------------------------------------------------------------+
void OnTick()
  {
// Получим значение индикатора
   dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.

// Если нет открытых ордеров, то входим в условие
      if(CountOrders()==0)
     {
// Если появился сигнал на покупку, то откроем ордер на покупку
      if(bSignalBuy() == true)
         vOrderOpenBuy();

// Если появился сигнал на продажу, то откроем ордер на продажу
      if(bSignalSell() == true)
         vOrderOpenSell();
     }
       DrawLABEL("lab_Take",1,5,0,Color(),StringConcatenate("LOT: ",DoubleToStr(LOT(),2)));  
  }

na linha amarela dá este aviso:

possível perda de dados devido à conversão do tipo

Parece que eu os misturei.

tudo está funcionando

se não houver transação, apenas uma cor está ligada

se houver um acordo aberto - ilumina outra cor

A cor() define desta forma:

double Color()
  {
   double CL =clrRed;
   if(CountOrders()==0) CL =clrYellow;
   return(CL);
  }
Por favor, verifique.
 
законопослушный гражданин possível perda de dados devido à conversão do tipo

Parece que eu os misturei.

tudo está funcionando

se não houver transação, apenas uma cor está ligada

se houver um acordo aberto - ilumina outra cor

A cor() define desta forma:

Por favor, verifique.

A função Cor deve retornar a cor, e não o dobro.

color Color()
  {
   color CL = clrRed;
   if(CountOrders() == 0) 
     CL = clrYellow;
   return(CL);
  }

O link que o motor do site acrescentou também seria útil para estudar.

 
Tretyakov Rostyslav #:

a1)

а2)

б)

e sobre os outros pontos?

Razão: