Bibliotecas: TradeAlgorithms

 

TradeAlgorithms:

Biblioteca de funções de negociação feitas para utilizar no código de Scripts e Expert Advisors dependendo do broker.

Você pode se familiarizar com os Expert Advisors desenhadas sobre a base desta biblioteca no artigo "Sistema de negociação simples com o uso de indicadores semáforo".

Como um grande número de Expert Advisors usando esta biblioteca se encontram na Base de Código, decidiu-se realizar quatro variantes de seu código de programa para usar estes Expert Advisors com qualquer broker que ofereça negociações em mercados financeiros usando o Terminal cliente MetaTrader 5:

  1. Para os brokers que oferecem spread diferente de zero e a capacidade de definir Stop Loss e Take Profit simultaneamente ao abrir uma posição;
  2. Para os brokers que oferecem spread zero e a capacidade de definir Stop Loss e Take Profit simultaneamente ao abrir uma posição;
  3. Para os brokers que oferecem spread diferente de zero e a capacidade de definir Stop Loss e Take Profit após ao abrir uma posição;
  4. Para os brokers que oferecem spread zero e a capacidade de definir Stop Loss e Take Profit após ao abrir uma posição;

Autor: Nikolay Kositsin

 

Com relação a:

//| Algoritmos de negociação para corretoras que oferecem spread diferente de zero e
//| e interrompe a configuração após a abertura de uma posição! 

em seu código, onde você configura a solicitação para modificar um Buy ... .

bool BuyPositionModify
.
.
.

//---- inicializando a estrutura do MqlTradeRequest para abrir a posição de COMPRA
   request.type   = ORDER_TYPE_BUY;
   request.price  = Ask;
   request.action = TRADE_ACTION_SLTP;
   request.symbol = symbol;

//---- Determine a distância até o Stop Loss (em unidades do gráfico de preços)
   if(StopLoss)
     {
      if(!StopCorrect(symbol,StopLoss))return(false);
      double dStopLoss=StopLoss*point;
      request.sl=NormalizeDouble(request.price-dStopLoss,digit);
      if(request.sl<PositionGetDouble(POSITION_SL)) request.sl=PositionGetDouble(POSITION_SL);
     }
   else request.sl=PositionGetDouble(POSITION_SL);

//---- Determinar a distância até o Take Profit (em unidades do gráfico de preços)
   if(Takeprofit)
     {
      if(!StopCorrect(symbol,Takeprofit))return(false);
      double dTakeprofit=Takeprofit*point;
      request.tp=NormalizeDouble(request.price+dTakeprofit,digit);
      if(request.tp<PositionGetDouble(POSITION_TP)) request.tp=PositionGetDouble(POSITION_TP);
     }
   else request.tp=PositionGetDouble(POSITION_TP);

A documentação afirma que somente a ação, o símbolo, o tp e o sl são necessários. Por que você também configura o tipo e o preço? Você descobriu que a documentação está incorreta?

 
Automated-Trading:

TradeAlgorithms:

Autor: Nikolay Kositsin

Olá amigos,

Estou adaptando um EA de forex que usa essa biblioteca para utilizar na BMF&Bovespa. E estou na dúvida de qual variante utilizar. Apesar de na Bovespa existir spread, este tem um significado diferente do spread do forex. Acredito que a variante correta para BMF&Bovespa seja a 1. Alguém consegui confirmar?

Abs,

Otávio 
 

Tentei colocar trailing stop usando WPR ou Parabolic, mas infelizmente ainda não consegui

Você poderia dar um exemplo de como colocar os trailing stops no frasmav2?

Muito obrigado

 
Nenhuma das quatro variantes da biblioteca não funciona=(((( dá uma mensagem no registro - Volume inválido para a estrutura da solicitação de negociação (em qualquer configuração de volume) - Eu acho que a razão é que no meu terminal o volume de compras em pares de moedas como - 100000-lot, 10000- 0.1lot, 1000-0.01lot - em geral, tudo não é como as pessoas=((((( Eu tentei em outro corretor em outra plataforma e até mesmo em outro computador - lá a entrada de lote é normal - ou seja, 1, 0,1, 0,01 - lá tudo funciona - Eu tenho bisbilhotado este código por quase uma semana - Eu não consigo encontrar o que consertar que conta lotes em milhares=((((( por favor, aconselhe ou se você não se importa de lançar a versão para o corretor com lotes em milhares - obrigado antecipadamente.
 
Otavio Konmin Clemente:
Olá amigos,

Estou adaptando um EA de forex que usa essa biblioteca para utilizar na BMF&Bovespa. E estou na dúvida de qual variante utilizar. Apesar de na Bovespa existir spread, este tem um significado diferente do spread do forex. Acredito que a variante correta para BMF&Bovespa seja a 1. Alguém consegui confirmar?

Abs,

Otávio 

Otávio, sua afirmação está correta. É a opção 1.

 

No meu caso:

Dados inválidos para a estrutura de solicitação de negociação!

OrderCheck(): Foi especificado um tipo não suportado de execução de ordem por saldo

Tentei todas as quatro opções também. Os valores de request.type, request.price, request.action, etc. parecem estar corretos.

 
Paulo Campozana:

Otávio, sua afirmação está correta. É a opção 1.

Boa noite, Paulo. Estou tentando usar esse robô karacatica, mas tenho dúvida. Em qual pasta colocar o arquivo da opção 1 ? Pode ajudar?

 
Senhores, estou tentando usar esse robÔ, porém, nos testes ele não entra com nenhuma posição apesar de funcionar. O que pode ser?
 
Olá, tentei interromper as entradas múltiplas, mas não deu certo. Acho que é por causa do comando recount.