Assista a como baixar robôs de negociação gratuitos

Roteiro interessante?
Então poste um link sobre isto -
deixe que outros avaliem

Você gostou do roteiro? Experimente no terminal MetaTrader 5

Bibliotecas

Classe para ajuste de preço, para qualquer ativo, inclusive miniindice e minidolar. - biblioteca para MetaTrader 5

RAFAEL FLORIANI PINTO

Visualizações:
387
Classificação:
votos: 4
Publicado:
2020.01.08 18:14

Declaração do objeto

Como default o objeto é declado com o simbolo do gráfico. Caso deseje declarar um simbolo diferente do presente no grafico, é so declarar o objeto passando como argumento a string com o nome do simbolo, caso esse simbolo não exista, o objeto será inicializado como default.

Para verificar se o simbolo desejado foi inicializado, é so chamar a função " GetSymbolName() " que retorna uma string com o nome do simbolo.

void OnStart()
  {
  CPriceAdjustmentV1 Symbol1;   //Default -> Symbol of the graph
  CPriceAdjustmentV1 Symbol2("EURUSD"); //User Symbol
  CPriceAdjustmentV1 Symbol3("NonexistentSymbol"); //Wrong Symbol
  
  printf("Symbol1 %s",Symbol1.GetSymbolName());
  printf("Symbol2 %s",Symbol2.GetSymbolName());
  printf("Symbol3 %s",Symbol1.GetSymbolName());
   
  }

Colocando esse script no grafico do "GBPUSD"

Funções presentes

double AdjustPrice(double price)

Recebe o preco não ajustado e retorna o ajustado.

void OnStart()
  {
  CPriceAdjustmentV1 Symbol1;   //Graph "PETR4" 0.01/point
  CPriceAdjustmentV1 Symbol2("DOLG20"); // 0.5/point
  CPriceAdjustmentV1 Symbol3("WING20"); // 5/point

  
  double Prices[]={95,110.5,60.85,314.555,623.6498756};
  int n=ArraySize(Prices);
  
  for(int i=0;i<n;i++){
  printf("Symbol: %s, TickZize: %f , Unadjusted price: %f, Adjusted price: %f",Symbol1.GetSymbolName(),SymbolInfoDouble(Symbol1.GetSymbolName(),SYMBOL_TRADE_TICK_SIZE),Prices[i],Symbol1.AdjustPrice(Prices[i]));
  
  }
  
  for(int i=0;i<n;i++){
  printf("Symbol: %s, TickZize: %f , Unadjusted price: %f, Adjusted price: %f",Symbol2.GetSymbolName(),SymbolInfoDouble(Symbol2.GetSymbolName(),SYMBOL_TRADE_TICK_SIZE),Prices[i],Symbol2.AdjustPrice(Prices[i]));
  
  }
  
  for(int i=0;i<n;i++){
  printf("Symbol: %s, TickZize: %f , Unadjusted price: %f, Adjusted price: %f",Symbol3.GetSymbolName(),SymbolInfoDouble(Symbol3.GetSymbolName(),SYMBOL_TRADE_TICK_SIZE),Prices[i],Symbol3.AdjustPrice(Prices[i]));
  
  }
  
   
   
   
   
  }

Para mostrar peguei três ativos com TickSize bem diferentes e ajustei os mesmos preços.

Resultado:

As outras 4 função são:

double PointsToPriceTPBuy(int point,double price);
double PointsToPriceSLBuy(int point,double price);
double PointsToPriceTPSell(int point,double price);
double PointsToPriceSLSell(int point,double price);

Recebem dois argumentos:

(int) Point = Numero de pontos;

(double) Price = Preco de referencia (não precisa ser ajustado).

Retorna o preço ajustado em relação ao de referencia.

Exemplo:

  double UPrice=658.32564;
  printf("Symbol: %s",Symbol1.GetSymbolName());
  printf("TickSize: %f",SymbolInfoDouble(Symbol1.GetSymbolName(),SYMBOL_TRADE_TICK_SIZE));
  printf("Unadjusted price: %f",UPrice);
  printf("Adjusted price: %f",Symbol1.AdjustPrice(UPrice));
  printf("TakeProfit 10 points buy: %f",Symbol1.PointsToPriceTPBuy(10,UPrice));
  printf("StopLoss 10 points buy: %f",Symbol1.PointsToPriceSLBuy(10,UPrice));

Resultado:



Regressão linear e ajuste polinomial de qualquer grau por mínimos quadrados. Regressão linear e ajuste polinomial de qualquer grau por mínimos quadrados.

O ajuste polinomial por minimos quadrados tem como objetivo encontrar uma equação polinomial de grau N, que mais se aproxima de um conjunto de pontos tabelados. Caso o grau N seja igual a 1, esse polinomio será uma reta, podendo caracterizar esse ajuste como regressão linear.

Volume Normalize (correct it) Volume Normalize (correct it)

Normalize (correct) the volume (lot) according to the symbol lot step

Accumulation/Distribution Accumulation/Distribution

O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.