Les positions cessent de s'ouvrir pendant le backtest sur CFD

 

Bonjour, quand je fais le backtest de cet EA sur le Forex, cela fonctionne mais sur les CFD sur actions, cela ne dure que quelques mois puis arrête d'acheter, même si toute la marge est disponible.

Une aide ou une explication ?

Merci.

Traduction automatique appliquée par le modérateur

//+------------------------------------------------------------------+
//|                                                   Investtest.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include<Trade\Trade.mqh>
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+

static int ordersPlacedToday = 0;
int maxOrdersPerDay = 1;

void OnTick()
  {
  
static datetime Old_Time;
datetime New_Time[1];
bool IsNewBar = false;

int copied = CopyTime(_Symbol, PERIOD_D1, 0, 1, New_Time);
if(copied>0)
   {
      if(Old_Time != New_Time[0])
      {
         IsNewBar = true;
         Old_Time = New_Time[0];
         ordersPlacedToday = 0;
      }
   }




double ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);

double Max5j = iHighest(_Symbol, PERIOD_H1, MODE_HIGH, 120, 0);

double Max3j = iHighest(_Symbol, PERIOD_H1, MODE_HIGH, 72, 0);

double Max1j = iHighest(_Symbol, PERIOD_H1, MODE_HIGH, 24, 0);

double Max4h = iHighest(_Symbol, PERIOD_H1, MODE_HIGH, 4, 0);


if (ask<=((Max4h)*0.99) && ordersPlacedToday < maxOrdersPerDay)
   {
   trade.Buy( 1, NULL, 0.0, 0,ask*1.05, "order succeded");
   ordersPlacedToday++;
   }
else if (ask<=((Max1j)*0.99) && ordersPlacedToday < maxOrdersPerDay)
   {
   trade.Buy( 1, NULL, 0.0, 0,ask*1.05, "order succeded");
   ordersPlacedToday++;
   }
else if (ask<=((Max3j)*0.99) && ordersPlacedToday < maxOrdersPerDay)
   {
   trade.Buy( 1, NULL, 0.0, 0,ask*1.05, "order succeded");
   ordersPlacedToday++;
   }
else if (ask<=((Max5j)*0.99) && ordersPlacedToday < maxOrdersPerDay)
   {
   trade.Buy( 1, NULL, 0.0, 0,ask*1.05, "order succeded");
   ordersPlacedToday++;
   } 
  }
Raison: