Hatalar, hatalar, sorular - sayfa 1189

 

meta alıntılar, beni sonuna kadar karıştırdın (

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

30'dan sonra ilk N?

maksimum 30?

 
sanyooooook :

metaquotes, beni sonuna kadar karıştırdın (

30'dan sonra ilk N?

maksimum 30?

Yardım diyor ki:

Belirtilen çizim alt penceresinde belirtilen ad, tür ve başlangıç koordinatlarına sahip bir nesne oluşturur. Oluştururken en fazla 30 koordinat belirtebilirsiniz.

Onlar. 30 maksimumdur. Bu nedenle, bilinmeyen sayıda (N) parametre önce gelir ve indeks 30 ile en son parametre gelir.

 
barabashkakvn :

Yardım diyor ki:

Belirtilen çizim alt penceresinde belirtilen ad, tür ve başlangıç koordinatlarına sahip bir nesne oluşturur. Oluştururken en fazla 30 koordinat belirtebilirsiniz.

Onlar. 30 maksimumdur. Bu nedenle, bilinmeyen sayıda (N) parametre önce gelir ve indeks 30 ile en son parametre gelir.

genellikle N yazın ve maksimum N sayısını belirtin, burada N<=30

Not: genellikle kafa karıştırıcı ustalardır, bir diziyi kopyalarken sadece bir indeksleme değişikliği, buna değer)

Veya burada:

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

ilk beşte olduğu ortaya çıktı, trend çizgisinin ilk koordinatı ilk değil. ama sıfır ve hiçbir yerde bundan bahsedilmiyor, en azından bu bilgiyi hızlı bir şekilde bulabileceğiniz yerde.

 
sanyooooook :
genellikle N yazın ve maksimum N sayısını belirtin, burada N<=30

Bu bağlamda değil. Bu, koşulların bir açıklaması değil, değişkenlerin adıdır. Ve değişken adına izin verilen maksimum dizini yansıtmanız gerekir. Bu nedenle, son değişkenler dizin 30 ile birlikte gelir:

   datetime      time30= 0 ,       // время 30-й точки привязки
   double        price30= 0        // цена 30-точки привязки
 
paladin800 :
Bir şekilde, dosya işlemleriyle çalışırken dosyaların diskte değil, RAM'de yazılmasını/okunmasını, böylece daha hızlı ve deliksiz çalışmasını sağlayabilir miyim?
Bir RAM disk yapabilir, bellekte bir dosya oluşturabilirsiniz.
 
barabashkakvn :

Bu bağlamda değil. Bu, koşulların bir açıklaması değil, değişkenlerin adıdır. Ve değişken adına izin verilen maksimum dizini yansıtmanız gerekir. Bu nedenle, son değişkenler dizin 30 ile birlikte gelir:

yukarıda verdiğim gibi yazdıkları tüm matematik ders kitaplarında N'yi işaretliyorlar ve ardından bu N'yi 30'dan fazla olmayan bir değere ayarlıyorlar.
 

burada normalde yazdıkları dörtlü yardımda:

 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 :
Bir RAM disk yapabilir, bellekte bir dosya oluşturabilirsiniz.
Açık. Sorun şu ki, terminal sanal alanı C sürücüsünde bulunuyor ve bir RAM diski oluştursam bile (örneğin, E sürücüsü), sanal alanı oraya yönlendirmek artık mümkün olmayacak.
 
paladin800 :
Açık. Sorun şu ki, terminal sanal alanı C sürücüsünde bulunuyor ve bir RAM diski oluştursam bile (örneğin, E sürücüsü), sanal alanı oraya yönlendirmek artık mümkün olmayacak.

İlk olarak, yeniden yönlendirebilirsiniz.

Ve WinAPI kullanıyorsanız ve yeniden yönlendirmeniz gerekmiyorsa. İkincisi, bellekte dosya oluşturmanın RAM disklerle hiçbir ilgisi yoktur, ancak WinAPI de gereklidir.

 

Metaeditör yardımından, bir forma ile çalışma örneğini aldım . Yayılmanın 1-2 puan olmadığı GBPCHF, CADCHF'de başlatıldı. Bana dizinin neden sıfırlarla dolu olduğunu söyle? Yani amaçlandı mı?

 #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);
  }