Esta multiplataforma permite trabalhar em ambiente de negociação virtual de uma maneira muito fácil.
A biblioteca permite criar um ambiente de negociação virtual e operar como se fosse um ambiente de negociação real. A funcionalidade da biblioteca não é nova, embora a biblioteca da multiplataforma forneça uma propriedade que pode ser importante às vezes: você não precisa estudar nada para usar. Conhecimento da lógica de negociação MT4 (não MT5) é o suficiente.
A lógica de negociação no estilo MT4 foi selecionada para negociação virtual, já que é mais conveniente e permite o desenvolvimento de EAs entre plataformas com facilidade.
A funcionalidade da biblioteca pode ser tradicionalmente demonstrada por um exemplo preparado antecipadamente.
// Lançamento de TS em ambientes de negociação reais e virtuais #include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006 #include <fxsaber\Virtual\Virtual.mqh> // Ambiente de negociação virtual input double Lots = 1; input int Interval = 100; // Tempo para fechar a posição input bool Example = true; // Que exemplo de código a selecionar // Reversão de TS void System() { if (!OrderSelect(OrdersTotal() - 1, SELECT_BY_POS)) OrderSend(_Symbol, OP_BUY, Lots, SymbolInfoDouble(_Symbol, SYMBOL_ASK), 100, 0, 0); // Se não houver posição, abra uma else if (TimeCurrent() - OrderOpenTime() > Interval) // Se o tempo para fechar a posição exceder o tempo especificado { // Reverter a posição OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100); OrderSend(_Symbol, 1 - OrderType(), Lots, OrderClosePrice(), 100, 0, 0); } } void OnTick() { static const int handle = VIRTUAL::Create(); // Criando indentificador do ambiente de negociação virtual 0 - ambiente real de negociação if (Example) { if (VIRTUAL::SelectByHandle()) // ambiente real de negociação selecionado System(); // Lançamento do TS em ambiente de negociação selecionado (real) if (VIRTUAL::SelectByHandle(handle)) // Ambiente de negociação virtual selecionado { VIRTUAL::NewTick(); // Adicionado tick ao ambiente de negociação virtual System(); // Lançamento de TS em ambiente de negociação selecionado (virtual) } } else // Fixação alternativa das mesmas ações. // Mover ao longo de todos os ambientes de negociação existentes for (int i = 0; i <= VIRTUAL::Total(); i++) if (VIRTUAL::SelectByIndex(i)) // selecionar mbiente de negociação apropriado { VIRTUAL::NewTick(); // Adicionado tick para um ambiente de negociação selecionado System(); // Lançamento de TS em um ambiente de negociação selecionado } Comment(VIRTUAL::ToString()); // Exibe o status do ambiente de negociação virtual no gráfico }
Este é um EA de reversão multiplataforma. Sua lógica de negociação pode ser descrita em apenas algumas strings (função System), graças ao estilo MT4. O EA lança o TS em ambientes de negociação reais e virtuais simultaneamente, isso pode ser bem visto no testador MT4 ou MT5 (CTRL + F5)

A imagem mostra que a negociação em ambientes reais e virtuais são idênticas.
Observe que o código TS permanece o mesmo. Apenas um ambiente de negociação é selecionado: um real ou qualquer número virtual.
O código exibido aqui é redundante - as duas versões mostram simplesmente a lógica de trabalhar com a biblioteca.
Uma vez que a fase de aceleração do Testador pode ser necessária com mais freqüência do que outras, nós adicionamos a capacidade de mudar qualquer TS para um ambiente virtual e vice-versa, adicionando duas strings no início do código.
#define VIRTUAL_TESTER // Lançamento no ambiente de negociação virtual #include <fxsaber\Virtual\Virtual.mqh> // Ambiente de negociação virtual
A string destacada permite que os usuários não interfiram com o código original do TS.

Este modo foi criado especificamente para o Testador. Assumindo que uma otimização de longo prazo seja iniciada com o ambiente virtual ativado (VirtualTester = true) em vez de um ambiente real, o que proporciona um ganho significativo na velocidade de otimização (tempo). Os resultados obtidos (critério OnTester - Balance) podem então ser usados para execuções de padrão único em ambiente real de negociação. (VirtualTester = false).
As mesmas duas strings de caracteres destinadas a acelerar o Testador permitem resolver outro problema comum - a reversão TS.

ReverseDeals = true - modo que permite a reversão das operações. O algoritmo interno é o seguinte:
Assim, a lógica do EA não é violada de forma alguma. Ao mesmo tempo, podemos ver o que o acontece na reversão de TS. Este modo também é verificado no Testador.
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/22577
MAMy v3
Indicador baseado em três médias móveis
RNN
O Expert Advisor baseado no indicador iRSI (Relative Strength Index, RSI) e com uma pequena rede neural
MAMy Expert
EA baseado no Indicador MAMy v.3
TrendLineAlert_V2
O indicador exibe uma linha de tendência inclinada. Seus parâmetros são definidos quando o indicador é lançado pelo trader. A linha de tendência define o nível de disparo do sinal. O rompimento da linha de tendência ativa os sinais, enviando e-mails e notificações push.