[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 542

 
chief2000 писал(а) >>


Bu 1 saat değil, 1 dakikadır, böyle bir dosyanın boyutu genellikle yaklaşık 160 MB'dir (10 yıllık geçmiş) - belki bunun nedeni disk alanıdır?





Teşekkürler, şimdi açık! Test cihazı onsuz başlamayacağı için geçmişi yükledim.
 
Bana yardım et lütfen.
Pozları kapatmıyor. Yorum Yoluyla, int GetTradeSignal_Strategija_1'de hem 2 hem de -2'yi gösterir. Denenmiş ve Kimovsimi fonksiyonları. Neler olduğunu anlamadığım gibi değil. 
Dosyalar:
pomogite.mq4  21 kb
 
İşte ManagePositions_Strategija_1 algoritması. ve bence her şey yolunda
 
Bana yardım et lütfen.
Neden test ettiğimde danışman aşağıdaki hatayı veriyor:
OrderSend işlevi için geçersiz fiyat 1.50615000
Ve arşivde, tüm alıntılar dört haneli, ancak sekiz haneli bir fiyatla hata veriyor ??
 
LeRus >> :
Помогите пожалуйста.
Почему когда тестирую советник выдает такую ошибку:
invalid price 1.50615000 for OrderSend function
А архиве все котировки четырехзначные а ошибку выдает с восмизначной ценой??


NormalizeDouble(Fiyat,Rakam);

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



Kullanmak için gerekenler:

 NormalizeDouble (ПЕРЕМЕННАЯ, Digits )
 
şimdi her şey çalışıyor. Çok teşekkürler.
 
Merhaba, belirli bir dönemdeki fiyat hareketini hesaplayan tarafımca yapılmış böyle bir gösterge var:
#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 );
}
Hata nerede, bu göstergenin çubuğu dakika cinsinden hesaplaması gerekir, yani. 1 H'ye atıyoruz ve hesaplanan göstergenin tüm dakikalarını topluyor:
 #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 );
}
Saygılarımla, İskender
 
Çocuklar, ders kitabında ve forumda çaydanlığa yardım edin, böylece çok net - bulamadım.

Danışmanı belirli bir M1 ve M5 zaman dilimi için yeniden yapıyorum, orada basit bir durum var:

double m1=iMA(NULL,0, dönem1,0,1,0,0 );
double m2=iMA(NULL,0,period2,0,1,0,0);
o zaman if(m1>m2) {okbuy=1;} falan falan filan

Burada soru yok.
Ancak MA için bir koşula daha ihtiyacım var (yukarıda açıklanana benzer), ancak daha yüksek spesifik zaman diliminden D1 (ve danışman M1 üzerinde çalışacak)
Mevcut zaman diliminde ve mevcut çiftte, mevcut çiftten gösterge verileri nasıl talep edilir - ancak farklı bir zaman dilimi? Böylece daha sonra bu veriler üzerinde bir koşul yapmak mümkün oldu.
Özellikle daha yüksek zaman dilimlerini ve diğer göstergeleri mevcut dönemde nasıl kullanacağımı benzetme yoluyla anlatırsanız çok sevinirim. teşekkürler
 
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)
Как запросить в текущем таймфрейме и в текущей паре, данные индикатора из текущей пары - но другого таймфрема? Чтобы потом можно было по этим данным сделать условие.
Особо буду признателен, если еще подскажете как по аналогии использовать старшие таймфреймы и других индикаторов в текущем периоде. Спасибо


period1 veya period2'nin PERIOD_D1 eklendiği yerde

Neden: