[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 422

 
Pouvez-vous me dire - est-ce que for à l'intérieur de for(s) fonctionne ?
 
elmucon:
Pouvez-vous me dire - est-ce que for à l'intérieur de for(s) fonctionne ?
Ça marche. Tous les autres opérateurs fonctionnent même.
 
Zhunko:
Ça marche. Même tous les autres opérateurs fonctionnent.

Merci !
 
Bonjour, veuillez fournir un fragment de code pour un Expert Advisor qui utilise un signal d'indicateur pour l'entrée, qui crée des flèches au lieu d'une ligne (c'est-à-dire que le style de l'indicateur est défini comme SetIndexStyle(0, DRAW_ARROW, EMPTY, 3)). Je veux la flèche vers le bas pour vendre, et la flèche vers le haut pour acheter. J'ai échoué en utilisant les méthodes standard pour une raison quelconque(
 

Pouvez-vous me dire comment modifier la période du rsi (par défaut, elle est de 14) ?

Merci.


//+------------------------------------------------------------------+
//|                                                  RSI_to_File.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.ru/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.ru/"

#property show_inputs
string SymbolsArray[11]={"","USDCHF","GBPUSD","EURUSD","USDJPY","CHFJPY","EURGBP","EURCHF","EURJPY","GBPJPY","GBPCHF"};

//+------------------------------------------------------------------+
//| string SymbolByNumber                                   |
//+------------------------------------------------------------------+
string GetSymbolString(int Number)
  {
//----
   string res="";
   res=SymbolsArray[Number];   
//----
   return(res);
  }

//+------------------------------------------------------------------+
//| возвращает период                                                |
//+------------------------------------------------------------------+
int PeriodNumber(int number)
   {
   int per_min;
   switch (number)
      {
     
      case 5: per_min=PERIOD_H4;break;
      default: per_min=PERIOD_D1;break;
      }
   return(per_min);   
   }

//+------------------------------------------------------------------+
//|   выводит в файл котировки + значения индикатора                 |
//+------------------------------------------------------------------+
void RSI_output(string SymbolName,int PeriodMinutes)
   {
   int size=iBars(SymbolName,PeriodMinutes);
//----
   if (size==0) return;
   int handle=FileOpen(SymbolName+PeriodMinutes+"_RSI.csv",FILE_WRITE|FILE_CSV);
   if (handle<0) return;
   FileWrite(handle,"Time;RSI");
   for (int i=size-1;i>=0;i--)
      {
      FileWrite(handle,TimeToStr(iTime(SymbolName,PeriodMinutes,i))
         ,iCustom(SymbolName,PeriodMinutes,"RSI",0,i));
      }
   FileClose(handle);      
//----
   return;
   }
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
  int SymbolCounter,PeriodCounter; 
//----
   for (SymbolCounter=1;SymbolCounter<13;SymbolCounter++)
      {
      for (PeriodCounter=2;PeriodCounter<=6;PeriodCounter++)
         {
         //Print("NewBar on ",GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter),"M");
         RSI_output(GetSymbolString(SymbolCounter),PeriodNumber(PeriodCounter));
         }
      }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

 

Les gars, pouvez-vous m'indiquer la direction de l'enregistrement pour que je puisse utiliser OPLI en ligne et obtenir mon nom d'utilisateur et mon mot de passe ?

 
Tu vois, j'ai obtenu l'heure par la fonction
ObjectGet("qwerty",OBJPROP_TIME2);
Je reçois 1323452400. Si je comprends bien, le temps est en secondes, donc si je soustrais 600 de ce temps, le nouvel emplacement sera 10 barres en arrière sur le graphique 5 minutes, mais en fait la nouvelle coordonnée n'a bougé que d'une barre, pourquoi cela se produit-il ? Et pour que le décalage soit de 10 barres, il faut soustraire environ 3000, où est la logique ici ?
 

Pouvez-vous me dire pourquoi je ne peux pas imprimer les variables, pas même 0 n'apparaît.

Le contrôleur de lot du respecté voix_kas. Légèrement retravaillé par moi.

double GetLot(int FastPeriodMA,int SlowPeriodMA) {
int i;
static double Lot = 0;
static double PrevBalance = 0;
static double BalanceOld[0];
static double BalanceNew[0];
if (NormalizeDouble(PrevBalance - AccountBalance(), 2) != 0) {
ArrayResize(BalanceNew, ArraySize(BalanceOld) + 1);
for (i = 0; i <= ArraySize(BalanceOld) - 1; i++)
BalanceNew[i] = BalanceOld[i];
BalanceNew[ArraySize(BalanceOld)] = AccountBalance();
ArrayResize(BalanceOld, ArraySize(BalanceOld) + 1);
ArrayCopy(BalanceOld, BalanceNew);
PrevBalance = AccountBalance();

if (ArraySize(BalanceNew) > SlowPeriodMA) {
double FastMA = 0, SlowMA = 0;
for (i = ArraySize(BalanceNew) - FastPeriodMA; i <= ArraySize(BalanceNew) - 1; i++)
FastMA += BalanceNew[i];
FastMA /= FastPeriodMA;
for (i = ArraySize(BalanceNew) - SlowPeriodMA; i <= ArraySize(BalanceNew) - 1; i++)
SlowMA += BalanceNew[i];
SlowMA /= SlowPeriodMA;
if (FastMA > SlowMA){ Lot = 5;Print(" FastMA ",FastMA,"; SlowMA= ",SlowMA); } 
else Lot = 0.01;
}
}
if (Lot < MarketInfo(Symbol(), MODE_MINLOT)) Lot = MarketInfo(Symbol(), MODE_MINLOT);
else if (Lot > MarketInfo(Symbol(), MODE_MAXLOT)) Lot = MarketInfo(Symbol(), MODE_MAXLOT);
return (Lot);
}
 
001:

Pouvez-vous me dire pourquoi je ne peux pas imprimer les variables, pas même 0 n'apparaît.

Le contrôleur de lot du respecté voix_kas. Légèrement redessiné par moi.


Et à chaque tic, la taille des tableaux augmente ?

Il serait peut-être plus facile de créer un indicateur d'équilibre. Et dans les conseillers experts, on s'adresserait à elle.

 
Vinin:


Et à chaque tic, la taille des tableaux augmente ?

Et il serait peut-être plus facile de fabriquer un indicateur d'équilibre. Et dans le conseiller expert, vous y faites déjà référence.


Vous pouvez, mais le conseiller expert fonctionne plus lentement dans ce cas. Et avec la sortie sur l'écran aussi le non-sens s'avère, il tire SEULEMENT quand l'affaire est fermée, et comment le faire exister comme une ligne continue de l'équilibre, je ne comprends pas, quelqu'un peut dire ?