[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 263

 
gince:

Je ne sais pas combien d'éléments doit avoir un tableau. Ça pourrait être 40 ou 65. En un mot, nous avons besoin d'un tableau dynamique.

Utilisez ArraySize pour modifier la taille du tableau :

int start()
  {
//----
   int start=3;
   int end1=30;
   int end2=90;
   int array[];

     ArrayResize(array, (end1-start) );
     int size1=ArraySize(array);
     ArrayResize(array, (end2-start) );
     int size2=ArraySize(array);

   Comment("start=",start,", end1=",end1,", end2=",end2,", size1=",size1,", size2=",size2);
//----
   return(0);
  }
Dans les commentaires, il en ressort : start=3, end1=30, end2=90, size1=27, size2=87.
 
LeksusMt4:

Bonjour, aidez-nous s'il vous plaît, le robot avec 0.1 lot multiplie les volumes et avec 0.01 ne le fait pas..... Qu'est-ce que je peux changer ?


Et il y a un lit ! SRC! Pour insérer le code!
 
borilunad:

Et puis, il y a le chahut ! SRC! Pour insérer le code !


Je ne suis pas encore très doué pour ça... dis-moi ce que je dois faire....

 

Utilisation de la fonction SetTLine() de KimIV https://forum.mql4.com/ru/38949/page6#434255 . Le problème est que j'ai besoin de deux lignes (haut et bas), mais cela ne fonctionne pas pour moi. J'ai créé une autre fonction SetTLine1() avec d'autres variables, mais elle ne fonctionne toujours pas. Comment faire ?

datetime d0=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));
datetime d1=TimeCurrent()-24*60*60;
while (TimeDayOfWeek(d1)==0 || TimeDayOfWeek(d1)==6) d1-=24*60*60;
d1=StrToTime(TimeToStr(d1, TIME_DATE));
datetime d2=d1-24*60*60;
while (TimeDayOfWeek(d2)==0 || TimeDayOfWeek(d2)==6) d2-=24*60*60;
d2=StrToTime(TimeToStr(d2, TIME_DATE));
int b2=iBarShift(NULL, 0, d2);     // номер бара начала второго дня
int b1=iBarShift(NULL, 0, d1);     // номер бара начала первого дня
int b0=iBarShift(NULL, 0, d0);     // номер бара начала текущего дня
int n2=iLowest(NULL, 0, MODE_LOW, b2-b1-1, b1);
int n1=iLowest(NULL, 0, MODE_LOW, b1-b0-1, b0);
datetime t1=Time[n2];
double   p1=Low[n2];
datetime t2=Time[n1];
double   p2=Low[n1];
SetTLine(Magenta, "", t1, p1, t2, p2, True, STYLE_SOLID, 3);   

datetime di0=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));
datetime di1=TimeCurrent()-24*60*60;
while (TimeDayOfWeek(di1)==0 || TimeDayOfWeek(di1)==6) di1-=24*60*60;
di1=StrToTime(TimeToStr(di1, TIME_DATE));
datetime di2=di1-24*60*60;
while (TimeDayOfWeek(di2)==0 || TimeDayOfWeek(di2)==6) di2-=24*60*60;
di2=StrToTime(TimeToStr(di2, TIME_DATE));
int bi2=iBarShift(NULL, 0, di2);     // номер бара начала второго дня
int bi1=iBarShift(NULL, 0, di1);     // номер бара начала первого дня
int bi0=iBarShift(NULL, 0, di0);     // номер бара начала текущего дня
int ni2=iHighest(NULL, 0, MODE_HIGH, bi2-bi1-1, bi1);
int ni1=iHighest(NULL, 0, MODE_HIGH, bi1-bi0-1, bi0);
datetime t1i=Time[ni2];
double   p1i=High[ni2];
datetime t2i=Time[ni1];
double   p2i=High[ni1];
SetTLine(..................................................
 

Bonjour ! Veuillez m'aider avec l'erreur :ERR_INVALID_FUNCTION_PARAMVALUE - 4051 -Valeur invalide du paramètre de la fonction.

Je ne trouve pas ce paramètre invalide.

//--------------------------------------------------------------- 6 --
   Print ("Конец  цикла вычисления торговых критериев --------------------------------------------------------------------");     

      Print("Попытка открыть ордер.");     
      if (Opn_B==true)
        {                                       // критерий откр. Buy
         Print("Попытка открыть ордер. Buy");
         RefreshRates();                        // Обновление данных
         SL=Bid - StopLoss*Point;     // Вычисление SL откр.
         TP=Bid + TakeProfit*Point;   // Вычисление TP откр.         
         Print("Попытка открыть Buy. Ожидание ответа..");
         MyTicket=OrderSend(Symbol(),OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buy counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Buy ",MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_BUY ", Fun_Erorr);
            }  
         return;                                // Выход из start()
        }
      if (Opn_S==true)              // Открытых орд. нет +
        {                                       // критерий откр. Sell
        Print("Попытка открыть ордер. Sell");
         RefreshRates();                        // Обновление данных
         SL=Ask + StopLoss*Point;     // Вычисление SL откр.
         TP=Ask - TakeProfit*Point;   // Вычисление TP откр.
         Print("Попытка открыть Sell. Ожидание ответа..");
         MyTicket=OrderSend(Symbol(),OP_SELL,Lts,Bid,2,SL,TP);//Открытие Sel ,counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Sell ",MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_SELL", Fun_Erorr);
            }             
         }
      return(0);
  }
//+------------------------------------------------------------------+

      
 
LeksusMt4:


Je ne le comprends pas encore très bien... dis-moi ce que je dois faire....

Le CRS est ici :


Et si le code est très volumineux, comme dans votre cas, joignez le fichier :


 
LeksusMt4:


Je ne sais pas encore grand-chose... dis-moi ce que je dois faire....


Je vous ai répondu dans l'autre fil ! Et supprimez vos posts de "portmanteau" !
 

Maintenant, l'erreur est de 130, je ne comprends pas pourquoi. Qui peut me dire où je vais mal.

   Print ("Конец  цикла вычисления торговых критериев --------------------------------------------------------------------");     

      Print("Попытка открыть ордер.");     
      if (Opn_B==true)
        {                                       // критерий откр. Buy
         Print("Попытка открыть ордер. Buy");
         RefreshRates();                        // Обновление данных
         SL=Bid - StopLoss*Point;     // Вычисление SL откр.
         TP=Bid + TakeProfit*Point;   // Вычисление TP откр.
         Print("SL ",SL," == Bid ",Bid," - StopLoss == ", StopLoss, " * Point ==",Point);
         Print("TP ",TP," == Bid ",Bid," + TakeProfit == ", TakeProfit," * Point ==",Point);         
         Print("Попытка открыть Buy. Ожидание ответа..", "| SL == ",NormalizeDouble(SL,5),"| TP == ",NormalizeDouble(TP,5));
         MyTicket=OrderSend(Symbol(),OP_BUY,0.1,Ask,2,NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits));//Открытие Buy counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Buy ", MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_BUY == ", Fun_Erorr);
            }  
         return;                                // Выход из start()
        }
      if (Opn_S==true)              // Открытых орд. нет +
        {                                       // критерий откр. Sell
        Print("Попытка открыть ордер. Sell");
         RefreshRates();                        // Обновление данных
         SL=Ask + StopLoss*Point;     // Вычисление SL откр.
         TP=Ask - TakeProfit*Point;   // Вычисление TP откр.
         Print("SL ",SL," == Bid ",Bid," + StopLoss == ", StopLoss, " * Point ==",Point);
         Print("TP ",TP," == Bid ",Bid," - TakeProfit == ", TakeProfit," * Point ==",Point);
         Print("Попытка открыть Sell. Ожидание ответа..", "| SL == ",NormalizeDouble(SL,Digits),"| TP == ",NormalizeDouble(TP,Digits));
         MyTicket=OrderSend(Symbol(),OP_SELL,0.1,Bid,2,NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits));//Открытие Sel ,counter
         if (MyTicket > 0)                        // Получилось :)
           {
            Print ("  !!!!!!!!    Открыт ордер Sell ",MyTicket);
            return;                             // Выход из start()
           }
           else if (MyTicket < 0)
           {
            Fun_Erorr=GetLastError();
            Alert("GetLastError OP_SELL == ", Fun_Erorr);
            }             
         }
 
atwas:
Les 30 et 31 mars 2013, nous avons organisé une conférence de 2 jours sur "Tous les secrets des paris gagnants". Tout le monde était satisfait. Le 5 mars, nous le publierons sur la chaîne YouTube stavkana1000000. Programme : 5. Étude des correspondances. 6. Identification des séquences. 7. Affectation d'une réserve - Banque. 8. Calculer à la mise moyenne de KEF. Entrez stavkana1000000 dans n'importe quel moteur de recherche et obtenez gratuitement la stratégie de paris sportifs (football). Vous pouvez également assister aux conférences en ligne, qui ontlieu tous les samedis et sont gratuites. Andrey Player.

Hé ! De quel casino venez-vous ?! Bannissement perpétuel du joueur !
 

Messieurs les officiers ! Je suis en train d'écrire le conseiller "Lieutenant Rzhevsky". Il ne veut pas se peindre lui-même, le salaud. Ceci et cela...D'une certaine façon...

Et il ne reste pas grand-chose : une oreille, une épaule et l'arrière de sa tête un peu...

Ainsi, lorsque je modifie un ordre, OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-3*Point,OrderTakeProfit(),0,CLR_NONE) ; je ne change que SL et, bien que l'ordre soit modifié correctement,

Le journal indique Order Modify error1 . Il n'y a donc pas d'erreur. Mais quelque chose ne va pas... Pouvez-vous me dire, si je peux me permettre, ce que c'est ?

Je dois le champagne !


Raison: