[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 1012

 
boris.45:

MERCI

Alors téléchargez les données. Appuyez sur F2, sélectionnez une paire et téléchargez l'historique complet sur M1.
 

Bonjour !

Veuillez m'indiquer comment mettre en œuvre une comparaison des valeurs de l'indicateur avec le prix de différents intervalles de temps (timeframe ???????) dans un EA. Je colle le code. La recherche n'a rien donné, autant que j'ai pu lire ce fil (avec 940). Merci d'avance ! !!

//+------------------------------------------------------------------+
//|                                        expert SAR_1_5_15 min.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//---- input parameters
extern double    Lots=0.01;
extern int       StopLoss=300;
extern int       TakeProfit=150;
extern int       MagicNumber=123456;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
bool CheckOrders(int Type)
{
 bool Result=True;
 for(int i=0;i<OrdersTotal();i++)
  if(OrderSelect(i,SELECT_BY_POS))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()==Type)
        {
         if(Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result=False;
         if(Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result=False;
         } 
        else Result=False;
 return(Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists(int Type)  
{
 bool Result=True;
 for(int i=OrdersHistoryTotal()-1; i>=0;i--)
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
   if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderCloseTime()>=Time[0]&&OrderType()==Type)
    {
     Result=False;
     break;
     }
 return(Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения Parabolic,на 0-ом, 1-ом и 2-м барах для 1,5-ти,15-ти минутн. графиков
    double sar10 = iSAR(NULL,1,0.02,0.2,0);
    double sar11 = iSAR(NULL,1,0.02,0.2,1);
    double sar50 = iSAR(NULL,5,0.02,0.2,0);
    double sar51 = iSAR(NULL,5,0.02,0.2,1);
    double sar150 = iSAR(NULL,15,0.02,0.2,0);
    double sar151 = iSAR(NULL,15,0.02,0.2,1);
    double sar152 = iSAR(NULL,15,0.02,0.2,2);
        
   //-------------открытие позиции Buy покупка----------------- 
    if(
    (sar10>Open[0])&&    //  SAR 1 // сравниваем с ценой открытия
    (sar11>Close[0+1])&&    // минута и сравниваем с ценой закрытия
    (sar50>Open[0])&&         //  SAR 5
    (sar51>Close[0+1])&&      // минут
    (sar150>Open[0])&&        //  SAR 15
    (sar151>Close[0+1])&&    // минут
    (sar152<Close[0+2])      // начало тренда
    )
     if(CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if(StopLoss <= StopLevel+Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    //-------------------Конец блока покупки -------------------
    
    //-------------Открытие позиции Sell продажа----------------  
    if(
    (sar10<Open[0])&&       //  SAR 1
    (sar11<Close[0+1])&&    // минут
    (sar50<Open[0])&&       //  SAR 5
    (sar51<Close[0+1])&&    // минут
    (sar150<Open[0])&&        //  SAR 15
    (sar151<Close[0+1])&&     // минут
    (sar153>Close[0+2])      // начало тренда
    )
     if(CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if(StopLoss <= StopLevel+Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//-----------------конец блока продажи ----------------------
   return(0);
  }
//+------------------------------------------------------------------+
 
Bonjour, chers programmateurs !
J'ai un conseiller expert qui négocie selon les échelles. Le problème est qu'il n'ouvre et ne ferme pas toujours les positions correctement, je pense que c'est à cause du slippage. Veuillez ajouter le paramètre Slippage à l'EA. Merci.
Dossiers :
 

Bonjour à tous !

Pourriez-vous me dire comment configurer cet EA ? https://www.mql5.com/ru/code/9434

Je veux qu'il ouvre une position de couverture ou qu'il ferme une position avec un bénéfice s'il atteint une certaine valeur négative ou positive.

Je ne sais pas où changer les paramètres.

Il y a des paramètres : profitplus 1.0

profitminus -1.0

profit 1.0

Je ne sais pas où le changer.

Je ne sais pas où modifier les paramètres. Merci.

 

Pouvez-vous me dire où trouver un EA qui ouvre une position à l'ouverture d'une bougie quotidienne ?

cp.

 
glasha:
Bonjour, chers programmateurs !
J'ai un EA qui négocie par les wagons. Le problème est qu'il n'ouvre et ne ferme pas toujours les positions correctement, je pense que c'est à cause du slippage. Veuillez ajouter le paramètre Slippage à l'EA. Merci.
Dossiers :
 
igrok2008:

Bonjour !

Veuillez m'indiquer comment mettre en œuvre une comparaison des valeurs de l'indicateur avec le prix de différents intervalles de temps (timeframe ???????) dans un EA. Je colle le code. La recherche n'a rien donné, autant que j'ai pu lire ce fil (avec 940). Merci d'avance !

D'après ce que j'ai compris, c'est à ce niveau que se fait la comparaison. Si je me trompe, qu'ils me corrigent.

if(
(sar10>Open[0])&& // SAR 1 // comparez avec le prix d'ouverture
(sar11>Close[0+1])&& // comparez avec le prix de clôture
(sar50>Open[0])&& // SAR 5
(sar51>Close[0+1])&& // minutes
(sar150>Open[0])&& // SAR 15
(sar151>Close[0+1])&& // minutes
(sar152<Close[0+2]) // début de tendance
)

 

1. comment le programme est coordonné dans des délais différents sur un réel ou un testeur.

Exemple : à l'heure, on surveille et on cherche une tendance, à la demi-heure et en dessous du (.) entrée/sortie.

Merci.

 
Bonjour, veuillez m'indiquer comment je peux faire en sorte que cet indicateur de signaux de croisement EMA n'émette pas un seul bip à chaque croisement, mais autant que je le souhaite.
 
x8profit:
Bonjour, les gars, pouvez-vous me dire comment faire cet indicateur de signal de croisement EMA pour qu'à chaque croisement il n'émette pas un seul bip mais autant de bips que je veux ?

Je n'ai pas regardé le code, mais la première chose qui m'est venue à l'esprit : dans la partie du code où un bip est généré, faire une boucle et sortir le nombre de ses itérations à l'externe. Le signal sera émis autant de fois que vous l'avez défini dans les paramètres...

Bien que... Il s'agira d'une pause dans le travail de l'indicateur avec la durée du signal *nombre d'itérations du cycle.