[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 542

 
chief2000 писал(а) >>


Ce n'est pas 1 heure mais 1 minute, la taille d'un tel fichier est généralement d'environ 160 MBytes (histoire de 10 ans) - peut-être cela a-t-il à voir avec l'espace disque ?





Merci, maintenant je vois ! J'ai téléchargé l'historique parce que le testeur ne voulait pas démarrer sans lui.
 
Aidez-moi, s'il vous plaît.
Il ne ferme pas les positions. Comm montre à la fois 2 et -2 en int GetTradeSignal_Strategija_1 . J'ai essayé et les fonctions de Ts Kim. Je ne sais pas ce qui ne va pas.
Dossiers :
pomogite.mq4  21 kb
 
Voici l'algorithme ManagePositions_Strategija_1.
 
Aidez-moi, s'il vous plaît.
Pourquoi, lorsque je teste mon conseiller expert, j'obtiens cette erreur :
prix invalide 1.50615000 pour la fonction OrderSend
Toutes les cotations dans les archives sont à quatre chiffres, mais le message d'erreur affiche un prix à huit chiffres ?
 
LeRus >>:
Помогите пожалуйста.
Почему когда тестирую советник выдает такую ошибку:
invalid price 1.50615000 for OrderSend function
А архиве все котировки четырехзначные а ошибку выдает с восмизначной ценой??


NormaliserDouble(Prix,Chiffre) ;

 
LeRus >>:
Помогите пожалуйста.
Почему когда тестирую советник выдает такую ошибку:
invalid price 1.50615000 for OrderSend function
А архиве все котировки четырехзначные а ошибку выдает с восмизначной ценой??



Il est nécessaire d'utiliser :

NormalizeDouble(ПЕРЕМЕННАЯ, Digits)
 
Maintenant, tout fonctionne. Merci beaucoup.
 
Bonjour, j'ai un indicateur que j'ai créé pour mesurer les mouvements de prix sur une certaine période de temps :
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1  White
#property indicator_color2  Blue

extern int MAPeriod = 14;

// buffers
double V[];           // Собственно значения
double SmoothedValues[];

int DigitsUsed = 8;


int init()
{
   // ассоциируем буферы
   SetIndexBuffer(0, V);
   SetIndexBuffer(1, SmoothedValues);   
   // задаем настройки для буферов
   SetIndexStyle(0, DRAW_LINE);     // Основной сигнал будет сплошной линией
   SetIndexStyle(1, DRAW_LINE);     // Основной сигнал будет сплошной линией   
   IndicatorDigits(DigitsUsed);

   return(0);
}

int start()
{
   int toCount = Bars - IndicatorCounted();  
   double P1,P2,P3;
   // Считаем значения
   for (int i = toCount - 1; i >=0; i--)
   {
      if(Open[i]>Close[i])
        {
         P1=High[i]-Low[i];
         P2=High[i]-Open[i];
         P3=Close[i]-Low[i];
        }
      if(Close[i]>Open[i])
        {
         P1=High[i]-Low[i];
         P2=High[i]-Close[i];
         P3=Open[i]-Low[i];
        }
      
      V[i] = P1+P2+P3;
   }
      
   // Считаем сглаженные значения
   for (i = toCount - 1; i >=0; i--)
   {
      SmoothedValues[i] = NormalizeDouble(iMAOnArray(V, 0, MAPeriod, 0, MODE_SMA, i), DigitsUsed);
   }
      
   
   return(0);
}
Où est l'erreur, j'ai besoin de cet indicateur pour calculer la barre sur les minutes, c'est à dire le lancer sur le 1 H et il ajoute toutes les minutes de l'indicateur calculé :
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1  White

// buffers
double V[];           // Собственно значения

int init()
{
   // ассоциируем буферы
   SetIndexBuffer(0, V);
   // задаем настройки для буферов
   SetIndexStyle(0, DRAW_HISTOGRAM);     // Основной сигнал будет сплошной линией  
   return(0);
}

int start()
{
   int toCount = Bars - IndicatorCounted(); 
   // Считаем значения
   for (int i = toCount - 1; i >=0; i--)
    {
     double t=0; //обнуляем счетчик
     int Minut1 = iBarShift(NULL,1,iTime(NULL,Period(),i),false);//Сколько минут прошло в баре
     int Minut0 = iBarShift(NULL,1,iTime(NULL,1,i),false);//нулевая минута в баре
     for(int k=Minut0; k<=Minut1;k++)
      {
       double K=iCustom(NULL,1,"V",14,0,k); //Сам индикатор
       t=t+K;
      } 
     V[i]=t; //забиваем в массив
    }   
   return(0);
}
Salutations Alexander
 
Les gars, aider les nuls, dans le tutoriel et sur le forum pour le rendre très clair - n'ont pas trouvé.

Je modifie l'EA pour un délai spécifique M1 et M5, il y a une condition simple :

double m1=iMA(NULL,0,period1,0,1,0,0) ;
double m2=iMA(NULL,0,period2,0,1,0,0) ;
then if(m1>m2) {okbuy=1;} blah blah blah

Aucune question ici.
Mais j'ai besoin d'une autre condition MA (comme ci-dessus) mais d'une période plus spécifique D1 (et l'EA fonctionnera sur M1)
Comment demander dans la période actuelle et dans la paire actuelle, les données de l'indicateur de la paire actuelle - mais dans une autre période ? Pour que je puisse ensuite utiliser ces données pour créer une condition.
Je vous serais particulièrement reconnaissant, si vous pouviez suggérer comment utiliser par analogie les anciens cadres temporels et autres indicateurs dans le cadre temporel actuel. Merci
 
alfo13 >>:
Ребят, помогите чайнигу, в учебнике и на форуме чтобы сильно понятно - так и не нашел.

Переделываю советник под конкретный таймфрейм M1 и M5, там присутствует простое условие:

double m1=iMA(NULL,0,period1,0,1,0,0);
double m2=iMA(NULL,0,period2,0,1,0,0);
затем if(m1>m2) {okbuy=1;} бла бла бла

Здесь вопросов нет.
Но мне надо чтобы было еще одно условие по MA (по типу вышеописанного) но из старшего конкретного таймфрейма D1 (а советник будет работать на M1)
Как запросить в текущем таймфрейме и в текущей паре, данные индикатора из текущей пары - но другого таймфрема? Чтобы потом можно было по этим данным сделать условие.
Особо буду признателен, если еще подскажете как по аналогии использовать старшие таймфреймы и других индикаторов в текущем периоде. Спасибо


Où période1 ou période2 insérer PERIOD_D1