Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

Besoin d'aide pour robot MT5

  • kyfranlouisa

    bonjour a tous.
    j'essaie avec le peu de connaissance que j'ai de créer un robot trading. mais je bloque.

    pouvez vous m'aider a mettre un stop loss suiveur dans ma stratégie svp.
    j'aimerai que le stop loss suive la ligne du SAR

    j'aimerai aussi mettre une règle d'achat sur une certaine figure du stochastique mais je sais pas si c'est possible.

    voila. je colle ci joint le mq5 au cas ou.

    merci d’avance pour toute aide proposé
    kyfranlouisa a joint une image
    besoin-d-aide-pour-robot-mt5-svp-11944
  • kyfranlouisa

    Code
    //+------------------------------------------------------------------+ //| essai projet SAR.mq5 | //| Copyright 2020, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Include | //+------------------------------------------------------------------+ #include <Expert\Expert.mqh> //--- available signals #include <Expert\Signal\SignalStoch.mqh> #include <Expert\Signal\SignalSAR.mqh> //--- available trailing #include <Expert\Trailing\TrailingParabolicSAR.mqh> //--- available money management #include <Expert\Money\MoneyFixedMargin.mqh> //+------------------------------------------------------------------+ //| Inputs | //+------------------------------------------------------------------+ //--- inputs for expert input string Expert_Title ="essai projet SAR"; // Document name ulong Expert_MagicNumber =30669; // bool Expert_EveryTick =false; // //--- inputs for main signal input int Signal_ThresholdOpen =10; // Signal threshold value to open [0...100] input int Signal_ThresholdClose =10; // Signal threshold value to close [0...100] input double Signal_PriceLevel =0.0; // Price level to execute a deal input double Signal_StopLevel =50.0; // Stop Loss level (in points) input double Signal_TakeLevel =70.0; // Take Profit level (in points) input int Signal_Expiration =4; // Expiration of pending orders (in bars) input int Signal_Stoch_PeriodK =15; // Stochastic(15,3,3,...) H4 K-period input int Signal_Stoch_PeriodD =3; // Stochastic(15,3,3,...) H4 D-period input int Signal_Stoch_PeriodSlow =3; // Stochastic(15,3,3,...) H4 Period of slowing input ENUM_STO_PRICE Signal_Stoch_Applied =STO_LOWHIGH; // Stochastic(15,3,3,...) H4 Prices to apply to input double Signal_Stoch_Weight =0.5; // Stochastic(15,3,3,...) H4 Weight [0...1.0] input double Signal_SAR_Step =0.02; // Parabolic SAR(0.02,0.2) H4 Speed increment input double Signal_SAR_Maximum =0.2; // Parabolic SAR(0.02,0.2) H4 Maximum rate input double Signal_SAR_Weight =1.0; // Parabolic SAR(0.02,0.2) H4 Weight [0...1.0] //--- inputs for trailing input double Trailing_ParabolicSAR_Step =0.02; // Speed increment input double Trailing_ParabolicSAR_Maximum=0.2; // Maximum rate //--- inputs for money input double Money_FixMargin_Percent =2.0; // Percentage of margin //+------------------------------------------------------------------+ //| Global expert object | //+------------------------------------------------------------------+ CExpert ExtExpert; //+------------------------------------------------------------------+ //| Initialization function of the expert | //+------------------------------------------------------------------+ int OnInit() { //--- Initializing expert if(!ExtExpert.Init(Symbol(),PERIOD_H4,Expert_EveryTick,Expert_MagicNumber)) { //--- failed printf(__FUNCTION__+": error initializing expert"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Creating signal CExpertSignal *signal=new CExpertSignal; if(signal==NULL) { //--- failed printf(__FUNCTION__+": error creating signal"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- ExtExpert.InitSignal(signal); signal.ThresholdOpen(Signal_ThresholdOpen); signal.ThresholdClose(Signal_ThresholdClose); signal.PriceLevel(Signal_PriceLevel); signal.StopLevel(Signal_StopLevel); signal.TakeLevel(Signal_TakeLevel); signal.Expiration(Signal_Expiration); //--- Creating filter CSignalStoch CSignalStoch *filter0=new CSignalStoch; if(filter0==NULL) { //--- failed printf(__FUNCTION__+": error creating filter0"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter0); //--- Set filter parameters filter0.Period(PERIOD_H4); filter0.PeriodK(Signal_Stoch_PeriodK); filter0.PeriodD(Signal_Stoch_PeriodD); filter0.PeriodSlow(Signal_Stoch_PeriodSlow); filter0.Applied(Signal_Stoch_Applied); filter0.Weight(Signal_Stoch_Weight); //--- Creating filter CSignalSAR CSignalSAR *filter1=new CSignalSAR; if(filter1==NULL) { //--- failed printf(__FUNCTION__+": error creating filter1"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter1); //--- Set filter parameters filter1.Period(PERIOD_H4); filter1.Step(Signal_SAR_Step); filter1.Maximum(Signal_SAR_Maximum); filter1.Weight(Signal_SAR_Weight); //--- Creation of trailing object CTrailingPSAR *trailing=new CTrailingPSAR; if(trailing==NULL) { //--- failed printf(__FUNCTION__+": error creating trailing"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Add trailing to expert (will be deleted automatically)) if(!ExtExpert.InitTrailing(trailing)) { //--- failed printf(__FUNCTION__+": error initializing trailing"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Set trailing parameters trailing.Step(Trailing_ParabolicSAR_Step); trailing.Maximum(Trailing_ParabolicSAR_Maximum); //--- Creation of money object CMoneyFixedMargin *money=new CMoneyFixedMargin; if(money==NULL) { //--- failed printf(__FUNCTION__+": error creating money"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Add money to expert (will be deleted automatically)) if(!ExtExpert.InitMoney(money)) { //--- failed printf(__FUNCTION__+": error initializing money"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Set money parameters money.Percent(Money_FixMargin_Percent); //--- Check all trading objects parameters if(!ExtExpert.ValidationSettings()) { //--- failed ExtExpert.Deinit(); return(INIT_FAILED); } //--- Tuning of all necessary indicators if(!ExtExpert.InitIndicators()) { //--- failed printf(__FUNCTION__+": error initializing indicators"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- ok return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Deinitialization function of the expert | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ExtExpert.Deinit(); } //+------------------------------------------------------------------+ //| "Tick" event handler function | //+------------------------------------------------------------------+ void OnTick() { ExtExpert.OnTick(); } //+------------------------------------------------------------------+ //| "Trade" event handler function | //+------------------------------------------------------------------+ void OnTrade() { ExtExpert.OnTrade(); } //+------------------------------------------------------------------+ //| "Timer" event handler function | //+------------------------------------------------------------------+ void OnTimer() { ExtExpert.OnTimer(); } //+------------------------------------------------------------------+
    Modifié le 2020-01-12 19:18:09 par AliX : [code] [/code]