Tudo sobre Programação, com código fonte exemplo - página 3

Para adicionar comentários, por favor Faça o login ou registrar
Rogerio Figurelli
Moderador
60289
Rogerio Figurelli  

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Media movel 30s

leosteg, 2019.04.10 18:57

Boa tarde, estou fazendo um indicador de media móvel corrida, mas ao invés dela fazer as medias de todos os candles, queria saber se é possível ela pegar apenas os últimos 30 segundos


#property indicator_label1  "A"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrYellow
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double         ABuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,ABuffer,INDICATOR_DATA);
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   for(int i=0; i<rates_total; i++)
   
      {
      
      ABuffer[i] = (high[i] + low[i]) / 2;
      }
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Joscelino Celso de Oliveira
872
Joscelino Celso de Oliveira  

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Input colocado manualmente virar uma linha horizontal ?

sergiomt, 2019.04.14 21:16

RESOLVI

Acrescentei ao código o bloco abaixo:



//+------------------------------------------------------------------+

//| TradeTransaction function                                        |

//+------------------------------------------------------------------+

void OnTradeTransaction(const MqlTradeTransaction &trans,

                        const MqlTradeRequest &request,

                        const MqlTradeResult &result)

  {

//--- get transaction type as enumeration value 

   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;

//--- if transaction is result of addition of the transaction in history

   if(type==TRADE_TRANSACTION_DEAL_ADD)

     {

      long     deal_entry        =0;

      double   deal_profit       =0.0;

      double   deal_volume       =0.0;

      string   deal_symbol       ="";

      long     deal_magic        =0;

      long     deal_reason       =-1;

      if(HistoryDealSelect(trans.deal))

        {

         deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY);

         deal_profit=HistoryDealGetDouble(trans.deal,DEAL_PROFIT);

         deal_volume=HistoryDealGetDouble(trans.deal,DEAL_VOLUME);

         deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL);

         deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC);

         deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON);

        }

      else

         return;


      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)

         if(deal_entry==DEAL_ENTRY_OUT)

           {

            if(deal_reason==DEAL_REASON_SL)

               ExtValorX=m_position.PriceCurrent();

            else if(deal_reason==DEAL_REASON_TP)

               ExtValorX=m_position.PriceCurrent();

           }

     }

  }

/


Rogerio Figurelli
Moderador
60289
Rogerio Figurelli  
Joscelino Celso de Oliveira:

Ótima contribuição @Joscelino Celso de Oliveira, obrigado por compartilhar.
Sds.,
Rogério Figurelli

Joscelino Celso de Oliveira
872
Joscelino Celso de Oliveira  

Um exemplo de péssima pratica de usuários do MT5 iniciantes.

Pegar um código, sequer efetuar a leitura do mesmo, colocar para rodar, nao obter o resultado esperado e postar no Fórum para ver se alguém "conserta" o mesmo para atender a seus desejos.

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

PRECISO DE UMA AJUDA COM O MEU INDICADOR, ESTÁ REPINTANDO, ALGUÉM PODE ME AJUDAR?

Joscelino Celso de Oliveira, 2019.04.20 02:04

Você efetuou os inputs indicados pelo desenvolvedor do indicador?

Você entende ao menos uma linha escrita pelo desenvolvedor?


Joscelino Celso de Oliveira
872
Joscelino Celso de Oliveira  

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Preço de abertura

Trader_Patinhas, 2019.04.25 01:11


Acabei de testar o script abaixo na Modal e funcionou perfeitamente:

void OnStart()
{
        double preco_abertura = SymbolInfoDouble (Symbol(),SYMBOL_SESSION_OPEN);
        printf( "Preço de abertura: %f", preco_abertura );   
}


Quanto ao backtest, acho que tanto faz, desde que ambas as corretoras tenham um histórico íntegro ... mas eu não uso a ferramenta de teste nativa do MT5, então melhor ouvir a opinião de quem usa, pode ter algum "bizú" que eu não saiba.


Joscelino Celso de Oliveira
872
Joscelino Celso de Oliveira  

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Em que momento, exatamente, é acionado o stop-loss ?

Trader_Patinhas, 2019.01.19 03:52

Em que momento, exatamente, é acionado o stop-loss ?

(A) No momento em que a melhor oferta atingir valor igual ou além do stop-loss (BID <= SL, se for posição comprada, ou ASK >= SL, se for posição vendida).

(B) No momento em que ocorrer um negócio com valor igual ou além do stop-loss (LAST <= SL, se for posição comprada, ou LAST >= SL, se for posição vendida).

(C) Nenhuma das respostas anteriores. O stop-loss é acionado quando ____________________________________________________________.

Agradeço quem souber responder ou indicar referência, pois não encontrei resposta a essa dúvida na documentação MQL5.


Rogerio Figurelli
Moderador
60289
Rogerio Figurelli  

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Visualização de leilão e preço teórico?

vinicius marini, 2019.04.09 05:30

Acabei fazendo um script pra calcular.


Funciona bem para ativos de liquidez baixa ou média, mas por limitações do numero de ofertas no Book que a XP retorna (16 ofertas de compra e 16 ofertas de venda) em ativos muito liquidos ele não consegue calcular. Nesse caso ele da uma estimativa.

Segue os fontes em anexo. Só criar um projeto, acrescentar os fontes e compilar.


Rogerio Figurelli
Moderador
60289
Rogerio Figurelli  

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Book de Ofertas no Strategy Tester

jdayanami, 2019.03.07 20:22

Fala ai pessoal, boa tarde.

Estou tentando utilizar o StrategyTester do MT5, build 2007, ModalMais para fazer alguns teste, porque é mais rápido que no live, mas aparentemente não há acesso ao Book de Ofertas (li isso em um post antigo, de 2014 acho).

Alguém sabe se realmente o book de Ofertas não pode ser acessado no Strategy Tester? Estou usando a função MarketBookGet, conforme abaixo:

         if (MarketBookAdd(Symbol()))
         {
             bookOk = MarketBookGet(NULL, PBookArray);
         }
         else
         {
            Print("Erro 3: " + GetLastError() + " " + Symbol());
         }


Obrigado.

Jhoni Carlos da Silva.


fercasa
5
fercasa  

Boa tarde, estou recebendo o seguinte código de erro : 32767 ( erro na inicialização de um robô ) . Alguém tem ideia do que seja ?


Obrigado

Joscelino Celso de Oliveira
872
Joscelino Celso de Oliveira  
fercasa:

Boa tarde, estou recebendo o seguinte código de erro : 32767 ( erro na inicialização de um robô ) . Alguém tem ideia do que seja ?


Obrigado

@fercasa,

Abra uma nova thread, inserindo um print da aba diário (journal) e o código do EA, caso você tenha desenvolvido.

Caso contrario, entre em contato com o desenvolvedor.

Da forma que postou não eh possível ajudar.

[ ]'s

Para adicionar comentários, por favor Faça o login ou registrar