Bibliotecas: MT4Orders - página 2

 
Dmitry Fedoseev:

Alguns rudimentos do trabalho com o histórico são detectados:

Toda vez que OrdersHistoryTotal() é chamada, ela percorre todo o histórico da conta com várias verificações.

A seleção no histórico por índice é a mesma coisa que percorrer todo o histórico.

Isso não é um rudimento, mas, infelizmente, uma necessidade.

Dmitry Fedoseev:
Quais foram os testes relacionados ao trabalho com o histórico?

Não vou descrever todos eles, pois foram muitos. O histórico foi testado em várias situações artificiais, bem como o histórico durante a execução dos consultores MT4

if (MQLInfoInteger(MQL_VISUAL_MODE))
    Comment("Trade:" + OrdersToString() + "\nHistory:" + OrdersToString(MODE_HISTORY)); // no modo visual do testador, você pode ver
 

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

Expert Advisors: Spreader

fxsaber, 2016.09.03 11:18 AM.

Você pode verificar isso no testador MT5.

// Esse é um consultor MT5 que permite que você execute o
// MT4-advisor no testador de múltiplas moedas MT5(Hedge) (com ticks reais)

// https://www.mql5.com/pt/code/16006
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>

//#include "Spreader_v1.mq4" // https://www.mql5.com/pt/code/9484
#include "Spreader_v2.mq4" // https://www.mql5.com/pt/code/9495

void OnTick()
{
  start();
}

Resultado do backtest de várias moedas com configurações padrão no modo EURUSD M1 OHLC

Detalhes no arquivo de relatório.


 
Olá, você pode me dar uma instrução passo a passo ou um vídeo sobre como usar qualquer Expert Advisor MT4 e testá-lo na plataforma MT5?
 
Nauris Zukas:
Olá, posso obter uma instrução passo a passo ou um vídeo sobre como usar qualquer Expert Advisor MT4 e testá-lo na plataforma MT5?

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

Dificuldades de tradução :)

Alexey Volchanskiy, 2016.09.05 14:05

Vou fazer um vídeo em meu blog no YouTube sobre a tradução de MQL4 para MQL5.

 

Автор создавал такую возможность для себя, поэтому намеренно не проводил подобную же идею перехода "одной строкой" для таймсерий, графических объектов, индикаторов и т.д.

Esse trabalho afeta apenas o sistema de garantias.

Trabalho em negrito

MQL's OOP notes: Converting MetaTrader 4 indicators to MetaTrader 5
MQL's OOP notes: Converting MetaTrader 4 indicators to MetaTrader 5
  • 2016.09.28
  • //www.mql5.com/en/users/marketeer">
  • www.mql5.com
It has been a long time since MetaTrader 5 was released, but MQL products for MetaTrader 4 do still prevail on mql5.com site (both in the codebase, and in the market), and in the Internet in general....
 

O que encontrei foi o seguinte. OrderSelect não funciona no código. E a variável do terminal Ask do MT4? Ela não é emulada de forma alguma?

#include <mt4orders.mqh>

void OnStart()
{
    MqlTick last_tick;
    SymbolInfoTick(Symbol(),last_tick);
    double Ask = last_tick.ask;
    int ticket = OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, 0, 0);
    if(ticket > 0)
        if(OrderSelect(ticket, SELECT_BY_TICKET))// não seleciona, embora a posição esteja aberta, ticket = 28912052. No terminal, na guia "Trade" (Comércio) Ticket = 38631303
        {
            double price = OrderOpenPrice();
            Print("price = ", DoubleToString(price, Digits()));
        }
}

ingresso


 
Alexey Volchanskiy:

Aqui está o que encontrei. O OrderSelect não está funcionando no código.

Sim, o OrderSend retorna um tíquete, não uma posição, mas uma ordem/transação. Isso é um efeito do fato de que a biblioteca foi escrita e testada apenas em um testador off-line.

Achei que ninguém a usaria, por isso não publiquei a versão corrigida (eu a corrigi há muito tempo). Pelo mesmo motivo, não publiquei a variante que também pode funcionar em bolsas.

E quanto à variável do terminal MT4 Ask? Ela não é emulada de forma alguma?

Tudo o que não está relacionado ao sistema de linguagem de ordens é colocado separadamente
#include <MQL4_to_MQL5.mqh>
ZЫ, enviei a versão corrigida para sua PM.
 
fxsaber:

A versão corrigida foi enviada para a PM.


E por que não atualizar a publicação? Todos precisam fazer isso.

 
Stanislav Korotky:

Por que você não atualiza a publicação? Todos deveriam.

Infelizmente, a atualização de publicações no kodobase não é tão frequente (moderada) quanto gostaríamos que fosse.

 
Stanislav Korotky:

Por que você não atualiza a publicação? Todos precisam dela.

Caso contrário, o fxsaber ficará chateado por eu ser o único que notou esse erro, portanto, ninguém precisa da biblioteca)) É que nosso pessoal é muito observador.

Uma anedota da vida - eu estava conduzindo um webinar e repeti 10 vezes que a gravação seria feita. No final, eu disse novamente, a gravação será amanhã, se você tiver perguntas - pergunte. E agora adivinhe a primeira pergunta ))))