Erreurs, bugs, questions - page 1189

 
sanyooooook:

méta-citations, vous m'avez complètement embrouillé (

N après 30 premiers ?

30 maximum ?

L'aide précise :

Crée un objet avec le nom, le type et les coordonnées initiales spécifiés dans la sous-fenêtre spécifiée du graphique. Vous pouvez spécifier jusqu'à 30 coordonnées lors de sa création.

C'est-à-dire que 30 est le maximum. Il y a donc d'abord un nombre inconnu (N) de paramètres et le tout dernier paramètre avec l'indice 30.

 
barabashkakvn:

L'aide précise :

Crée un objet avec le nom, le type et les coordonnées initiales spécifiés dans la sous-fenêtre spécifiée du graphique. Jusqu'à 30 coordonnées peuvent être spécifiées lors de la création.

C'est-à-dire que 30 est le maximum. Il y a donc d'abord un nombre inconnu (N) de paramètres et le tout dernier paramètre avec l'indice 30.

Habituellement, ils écrivent N, et après cela ils spécifient le nombre maximum N où N<=30

SZZ : ils sont les maîtres de la confusion : un seul changement d'indexation, lors de la copie d'un tableau, ne coûte rien ;)

ou ceci :

           ObjectSetInteger(0,iObjectName,OBJPROP_TIME,0,X1Time);

il s'avère que la première coordonnée de la ligne de tendance n'est pas la première. mais zéro, et nulle part il n'est dit cela, du moins là où vous pouvez trouver rapidement cette information.

 
sanyooooook:
vous écrivez habituellement N, et après cela vous spécifiez le N maximum où N<=30

Pas dans ce contexte. Il ne s'agit pas d'une description des conditions, mais d'un nom de variable. Et le nom de la variable doit refléter l'indice maximal autorisé. C'est pourquoi les dernières variables vont avec l'indice 30 :

   datetime     time30=0,      // время 30-й точки привязки
   double       price30=0      // цена 30-точки привязки
 
paladin800:
Existe-t-il un moyen de faire en sorte que les opérations sur les fichiers écrivent/lisent les fichiers non pas sur le disque mais dans la RAM pour travailler plus rapidement et sans trous ?
Vous pouvez créer un disque RAM, vous pouvez créer un fichier en mémoire.
 
barabashkakvn:

Pas dans ce contexte. Il ne s'agit pas d'une description des conditions, mais d'un nom de variable. Et le nom de la variable doit refléter l'indice maximal autorisé. Par conséquent, les dernières variables vont avec un indice de 30 :

Dans tous les manuels de mathématiques, ils l'écrivent comme je l'ai mentionné ci-dessus, ils spécifient N et donnent ensuite à ce N une valeur ne dépassant pas 30.
 

Ils ont la bonne référence dans le quadrilatère :

bool  ObjectCreate(
   long          chart_id,      // идентификатор графика
   string        object_name,   // имя объекта
   ENUM_OBJECT   object_type,   // тип объекта
   int           sub_window,    // индекс окна
   datetime      time1,         // время первой точки привязки
   double        price1,        // цена первой точки привязки
   ...
   datetime      timeN=0,       // время N-точки привязки
   double        priceN=0       // цена N-точки привязки
   );
 

 
TheXpert:
Vous pouvez créer un disque RAM, vous pouvez créer un fichier en mémoire.
Je vois. Le problème est que le sandbox du terminal se trouve sur le lecteur C et que même si je crée un lecteur RAM (par exemple le lecteur E), il n'est pas possible d'y rediriger le sandbox.
 
paladin800:
Je vois. Le problème est que le bac à sable des terminaux est situé sur le lecteur C et même si je crée un lecteur RAM (par exemple le lecteur E), je ne peux pas y rediriger le bac à sable.

Tout d'abord, il est possible de le rediriger.

Et si vous utilisez WinAPI, vous n'avez pas non plus besoin de rediriger. Deuxièmement, la création de fichiers en mémoire n'a rien à voir avec les disques RAM, bien que WinAPI soit également nécessaire.

 

J'ai utilisé l'aide de Metaeditor pour prendre un exemple de la façon de travailler avec la propagation. Je l'ai utilisé sur GBPCHF, CADCHF où le spread n'est pas de 1-2 pips. Pouvez-vous me dire pourquoi le tableau est rempli de zéros ? Est-ce que c'est conçu comme ça ?

#property indicator_separate_window
#property indicator_buffers 1
//---- plot Spread
#property  indicator_label1  "Spread"
#property  indicator_type1   DRAW_HISTOGRAM
#property  indicator_color1  clrRed
#property  indicator_style1  STYLE_SOLID
#property  indicator_width1  1
//--- input parameters
input int      bars=3000;
//--- indicator buffers
double         SpreadBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,SpreadBuffer,INDICATOR_DATA);
   IndicatorSetInteger(INDICATOR_DIGITS,0);
//---
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   if(prev_calculated==0)
     {
      int spread_int[];
      ArraySetAsSeries(spread_int,true);
      int spreads=CopySpread(Symbol(),0,0,bars,spread_int);
      Print("Получено исторических значений спреда: ",spreads);
      for (int i=0;i<spreads;i++) 
      {
      SpreadBuffer[rates_total-1-i]=spread_int[i];
      if(i<=30) Print("spread["+i+"] =",spread_int[i]);
      }
     }
   else
     {
      double Ask,Bid;
      Ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
      Bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
      Comment("Ask = ",Ask,"  Bid = ",Bid);
      SpreadBuffer[rates_total-1]=(Ask-Bid)/Point();
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
 
Désolé, c'est dans MT4
Raison: