229 lines
No EOL
8.8 KiB
MQL5
229 lines
No EOL
8.8 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| S0_Admissao_v4_3.mqh |
|
|
//| OXFORD |
|
|
//| HEDGING HORN CAPITAL |
|
|
//| https://www.hhcapital.com.br |
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright 2022, HEDGING HORN CAPITAL"
|
|
#property link "https://www.hhcapital.com.br"
|
|
#property version "PROD_v4_3"
|
|
#property description "HFT MARKET MAKING BASED ON OXFORD'S STUDIES. MINI INDICE."
|
|
|
|
//+===================================================================================================================================================================================+
|
|
//| 0 - SESSAO DE CABECALHO / ADMISSAO
|
|
//+===================================================================================================================================================================================+
|
|
//+------------------------------------------------------------------+
|
|
//| 0.1 - IMPORTACOES |
|
|
//+------------------------------------------------------------------+
|
|
#include <Expert/Expert.mqh>
|
|
#include <Trade/Trade.mqh>
|
|
#include <Trade/SymbolInfo.mqh>
|
|
#include "MarketBook.mqh"
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| 0.2 - OBJETOS OPERACIONAIS |
|
|
//+------------------------------------------------------------------+
|
|
struct CustomMqlTick
|
|
{
|
|
int idTick;
|
|
int vb0;
|
|
int va0;
|
|
int bid1;
|
|
int ask1;
|
|
int vb1;
|
|
int va1;
|
|
int flag;
|
|
int volume;
|
|
datetime timestamp;
|
|
double last;
|
|
double bid0;
|
|
double ask0;
|
|
string tipoEvento;
|
|
};
|
|
|
|
|
|
struct slot
|
|
{
|
|
ulong idOrdem;
|
|
ulong idPosicao;
|
|
int statusCambio;
|
|
int statusMotor;
|
|
int ponta;
|
|
int state;
|
|
double qtd;
|
|
double precoEnvio;
|
|
double precoAlvo;
|
|
double precoStop;
|
|
double spreadEnvio;
|
|
double spreadAlvo;
|
|
double spreadStop;
|
|
MqlDateTime cronometro;
|
|
};
|
|
|
|
|
|
struct posicao
|
|
{
|
|
ulong idPosicao;
|
|
int ponta;
|
|
double qtd;
|
|
double precoMedio;
|
|
double precoAlvo;
|
|
double precoStop;
|
|
};
|
|
|
|
|
|
struct fluido
|
|
{
|
|
bool LC;
|
|
bool LV;
|
|
int q;
|
|
int Q;
|
|
int t;
|
|
int TOr;
|
|
int TPr;
|
|
int TOe;
|
|
int TPe;
|
|
int t0d;
|
|
int td;
|
|
int Td;
|
|
int nBook;
|
|
int iBid0;
|
|
int iAsk0;
|
|
int iSlot;
|
|
int niveis;
|
|
int rajada;
|
|
int handlerMA;
|
|
int handlerSTDDEVLongo;
|
|
int handlerSTDDEVCurto;
|
|
int handlerVolumeReal;
|
|
int handlerVolumeNegocios;
|
|
int periodoMA;
|
|
int periodoSTDDEVLongo;
|
|
int periodoSTDDEVCurto;
|
|
int periodoVolume;
|
|
int intervaloTicks;
|
|
int fatorHedge;
|
|
int spreadOffsetEnvioLado;
|
|
int spreadOffsetEnvioLeve;
|
|
int spreadOffsetAlvoLado;
|
|
int spreadOffsetAlvoLeve;
|
|
int n;
|
|
int fatorLambdaBacktest;
|
|
double media;
|
|
double midPrice;
|
|
double sigmaHFT;
|
|
double sigmaLFT;
|
|
double volumeReal;
|
|
double volumeNegocios;
|
|
double assimetria;
|
|
double curtose;
|
|
double driftHFTTend;
|
|
double driftHFTVol;
|
|
double driftLFTTend;
|
|
double driftLFTVol;
|
|
double spreadHFTC;
|
|
double spreadHFTV;
|
|
double spreadLFTC;
|
|
double spreadLFTV;
|
|
double KC;
|
|
double KV;
|
|
double lambdaC;
|
|
double lambdaV;
|
|
double lobC;
|
|
double lobV;
|
|
double fi;
|
|
double fiInicial;
|
|
double passoFi;
|
|
double alpha;
|
|
double precoMedioC;
|
|
double precoMedioV;
|
|
double tickMin;
|
|
double precoAbertura;
|
|
double precoOpen;
|
|
double precoClose;
|
|
double desvioDiario;
|
|
double MA[];
|
|
double STDDEVLONGO[];
|
|
double STDDEVCURTO[];
|
|
double VOLUMEREAL[];
|
|
double VOLUMENEGOCIOS[];
|
|
double limiteInfTend;
|
|
double limiteSupTend;
|
|
double limiteInfDesvio;
|
|
double limiteSupDesvioLongo;
|
|
double limiteSupDesvioCurto;
|
|
double imbalance;
|
|
double corteImbalance;
|
|
double eC;
|
|
double eV;
|
|
double c;
|
|
string tendencia;
|
|
double fatorStop;
|
|
double gama;
|
|
double ft;
|
|
};
|
|
|
|
|
|
struct operacao
|
|
{
|
|
bool chaveEscalonador;
|
|
bool chaveRiscoSaldo;
|
|
bool chaveRiscoTend;
|
|
bool chaveRiscoVolCurto;
|
|
bool chaveTrailing;
|
|
bool chaveLambda;
|
|
bool chaveLambdaBacktest;
|
|
bool chaveBook;
|
|
bool chaveBookBacktest;
|
|
bool chaveFiAutomatico;
|
|
bool chaveTempoExpiraVariavel;
|
|
bool chaveGama;
|
|
int magic;
|
|
int diaAtual;
|
|
int diaAnt;
|
|
int posicoes_total;
|
|
int posicoes_total_prev;
|
|
int normalizeDoubleSize;
|
|
int tipoPosicao;
|
|
int expiraPosicao;
|
|
int countSaldo;
|
|
int countFechaDia;
|
|
int numeroContratos;
|
|
ushort horarioShort_atual;
|
|
ushort horarioShort_inicial;
|
|
ushort horarioShort_final;
|
|
ushort horarioShort_fechamento;
|
|
double saldoInicialDia;
|
|
double saldoAtualDia;
|
|
double diferencaSaldo;
|
|
double alvoFinanceiro;
|
|
double stopFinanceiro;
|
|
double alvoPercentual;
|
|
double stopPercentual;
|
|
double precoAlvo;
|
|
double precoStop;
|
|
double precoEnvio;
|
|
double offsetStartTrailingC;
|
|
double offsetStartTrailingV;
|
|
double offsetStopTrailingC;
|
|
double offsetStopTrailingV;
|
|
string handlerNormalizeDoubleSize;
|
|
MqlDateTime horarioMQL_inicio;
|
|
MqlDateTime horarioMQL_final;
|
|
MqlDateTime horarioMQL_encerramento;
|
|
MqlDateTime horarioMQL_atual;
|
|
MqlDateTime horarioMQL_comprado;
|
|
MqlDateTime horarioMQL_compra;
|
|
MqlDateTime cronometroPosicao;
|
|
MqlDateTime cronometroRefreshPosicao;
|
|
MqlTradeRequest request;
|
|
MqlTradeResult result;
|
|
MqlTradeTransaction transaction;
|
|
MqlTradeCheckResult check_result;
|
|
CSymbolInfo simbolo;
|
|
CTrade negocio;
|
|
};
|
|
|
|
//+===================================================================================================================================================================================+
|
|
//| FIM DO PROGRAMA
|
|
//+===================================================================================================================================================================================+ |