//+------------------------------------------------------------------+
//| JP.mq5 |
//| Copyright 2025, MetaQuotes Ltd. |
//| [Link] |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link "[Link]
#property version "1.00"
//+------------------------------------------------------------------+
//| Include |
//+------------------------------------------------------------------+
#include <Expert\[Link]>
//--- available signals
#include <Expert\Signal\[Link]>
//--- available trailing
#include <Expert\Trailing\[Link]>
//--- available money management
#include <Expert\Money\[Link]>
//+------------------------------------------------------------------+
//| Inputs |
//+------------------------------------------------------------------+
//--- inputs for expert
input string Expert_Title ="JP"; // Document name
ulong Expert_MagicNumber =779294825; //
bool Expert_EveryTick =false; //
//--- inputs for main signal
input int Signal_ThresholdOpen =15; // Mais seletivo na abertura
[0...100]
input int Signal_ThresholdClose =10; // Sinal para fechar
[0...100]
input double Signal_PriceLevel =0.0; // Price level to execute a
deal
input double Signal_StopLevel =200.0; // Stop Loss level (20 pips)
input double Signal_TakeLevel =400.0; // Take Profit level (40
pips)
input int Signal_Expiration =4; // Expiração de ordens
pendentes (em barras)
input int Signal_RVI_PeriodRVI =10; // Relative Vigor Index(10)
Period of calculation
input double Signal_RVI_Weight =1.0; // Relative Vigor Index(10)
Weight [0...1.0]
//--- inputs for trailing
input double Trailing_ParabolicSAR_Step =0.02; // Incremento do SAR
input double Trailing_ParabolicSAR_Maximum=0.2; // Taxa máxima
//--- inputs for money
input double Money_FixLot_Percent =2.0; // Risco máximo por trade (%
da conta)
input double Money_FixLot_Lots =0.1; // Lote fixo inicial
//+------------------------------------------------------------------+
//| Global expert object |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Initializing expert
if(,Period(),Expert_EveryTick,Expert_MagicNumber))
{
printf(__FUNCTION__+": error initializing expert");
[Link]();
return(INIT_FAILED);
}
//--- Creating signal
CExpertSignal *signal=new CExpertSignal;
if(signal==NULL)
{
printf(__FUNCTION__+": error creating signal");
[Link]();
return(INIT_FAILED);
}
//---
[Link](signal);
[Link](Signal_ThresholdOpen);
[Link](Signal_ThresholdClose);
[Link](Signal_PriceLevel);
[Link](Signal_StopLevel);
[Link](Signal_TakeLevel);
[Link](Signal_Expiration);
//--- Creating filter CSignalRVI
CSignalRVI *filter0=new CSignalRVI;
if(filter0==NULL)
{
printf(__FUNCTION__+": error creating filter0");
[Link]();
return(INIT_FAILED);
}
[Link](filter0);
//--- Set filter parameters
[Link](Signal_RVI_PeriodRVI);
[Link](Signal_RVI_Weight);
//--- Creation of trailing object
CTrailingPSAR *trailing=new CTrailingPSAR;
if(trailing==NULL)
{
printf(__FUNCTION__+": error creating trailing");
[Link]();
return(INIT_FAILED);
}
if()
{
printf(__FUNCTION__+": error initializing trailing");
[Link]();
return(INIT_FAILED);
}
[Link](Trailing_ParabolicSAR_Step);
[Link](Trailing_ParabolicSAR_Maximum);
//--- Creation of money object
CMoneyFixedLot *money=new CMoneyFixedLot;
if(money==NULL)
{
printf(__FUNCTION__+": error creating money");
[Link]();
return(INIT_FAILED);
}
if()
{
printf(__FUNCTION__+": error initializing money");
[Link]();
return(INIT_FAILED);
}
[Link](Money_FixLot_Percent);
[Link](Money_FixLot_Lots);
//--- Check all trading objects parameters
if(![Link]())
{
[Link]();
return(INIT_FAILED);
}
//--- Tuning of all necessary indicators
if(![Link]())
{
printf(__FUNCTION__+": error initializing indicators");
[Link]();
return(INIT_FAILED);
}
//--- ok
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
[Link]();
}
//+------------------------------------------------------------------+
void OnTick()
{
[Link]();
}
//+------------------------------------------------------------------+
void OnTrade()
{
[Link]();
}
//+------------------------------------------------------------------+
void OnTimer()
{
[Link]();
}
//+------------------------------------------------------------------+