Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1091

 
FiVik :

Tünaydın. Soru şu: Bir göstergenin değerlerinin farklı zaman dilimlerinden bir fiyat grafiğinde nasıl görüntüleneceğine dair örnek bir kodu nerede görebilirim?

Google'da bir şey çalışmıyor, muhtemelen yanlış bir istek yapıyorum.

Spesifik olarak, fiyat tablosunda bir sütunda, Bollinger bantlarının H1'den W1'e standart sapma değerlerini ve ikinci sütunda, standart sapmayı katsayılarla çarparak elde edilen değerleri görüntülemeniz gerekir. .

Bollinger bantları değiştirildi.

"Çoklu zaman çerçevesi" kod tabanında arama yapmak için anahtar kelimeler

Metin, OBJ_LABEL kullanılarak görüntülenebilir.

 
LRA :

1. MetaEditor'da deneyin: Dosya --> Paylaşılan veri klasörünü açın. Klasörün yoluna bakın. Bu soru defalarca tartışıldı, örneğin link burada

2. İlk önce dahil etmeden deneyin. Hata ayıkladığınızda, dahil etmeye başlayın.

3. Kaynakları, yukarıdaki SRC düğmesini veya aşağıdaki Dosya ekle düğmesini kullanarak buraya ekleyin.

Çok teşekkürler.
 

Lütfen saat 07:00'deki bar açılış fiyatına nasıl yatay bir çizgi çizileceğini önerin.

Bu kodu yazdım ama nedense çizgi çizilmiyor. Hata nerede?

 extern string StartTime = "07:00" ;           //Начальное время для анализа, 00:00 EST
extern string AlTime = "18:55" ;           //Время для трейдинга
extern string EndTime   = "20:00" ;           //Время экспирации
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit ()
  {       
   ObjectCreate ( ChartID (), "CORDON" , OBJ_HLINE , 0 , 0 ,Ask);         //созд гор линию по цене Ask
   
   ObjectSetInteger ( ChartID (), "CORDON" , OBJPROP_COLOR , clrDarkBlue );   //цвет темно-сиий
      
   ObjectSetInteger ( ChartID (), "CORDON" , OBJPROP_WIDTH , 1 );   //толщина линии 1
      
   ObjectSetInteger ( ChartID (), "CORDON" , OBJPROP_STYLE , STYLE_SOLID );   //линия сплош
   
   int IndexOfBar = iBarShift( ChartID (), PERIOD_H1 , StringToTime (StartTime), true ); //Считаем индекс бара по заданному времени StartTime
   double StartPrice = Open[IndexOfBar];                     //Получаем цену по индексу
   
   ObjectMove ( ChartID (), "CORDON" , 0 , 0 , StartPrice);           // меняем распол линии   
   return ( 0 );
   }
 
RichLux :

Lütfen saat 07:00'deki bar açılış fiyatına nasıl yatay bir çizgi çizileceğini önerin.

Bu kodu yazdım ama nedense çizgi çizilmiyor. Hata nerede?

Kaldırırsanız ObjectMove satırı görünür mü? Uyarıyı deneyin(StartPrice);
 
LRA :
Kaldırırsanız ObjectMove satırı görünür mü? Uyarıyı deneyin(StartPrice);

ObjectMove öğesini kaldırırsanız, satır görünmez, ancak " double StartPrice = Open[IndexOfBar];" satırındaysa " IndexOfBar" yerine sayısal bir değer yazın, örneğin " double StartPrice = Open[5];" ardından beşinci çubuğun açılış fiyatından bir çizgi çeker.

Uyarı fikri için teşekkürler - "0" değerini gösteriyor.

Bu arada, satır aynı zamanda 0 değeriyle nesneler listesindedir.

 
RichLux :

Lütfen saat 07:00'deki bar açılış fiyatına nasıl yatay bir çizgi çizileceğini önerin.

Bu kodu yazdım ama nedense çizgi çizilmiyor. Hata nerede?

İnternette çizim yapmak ve hesaplamalar yapmak imkansızdır, bu büyük bir hatadır. Init mümkün olduğunca çabuk kapanmalıdır.

Buradaki hata int IndexOfBar = iBarShift( ChartID () _Symbol , PERIOD_H1 , StringToTime (StartTime), true ); //Belirtilen zamanda StartTime'da bar indeksini hesapla

Zaman, tarih-saat biçiminde hemen ayarlanabilir, dönüştürme için makine zamanını boşa harcamanıza gerek yoktur, bu şekilde çalışır:

 #property strict
#property show_inputs

extern datetime StartTime = D'07:00' ;           //Начальное время для анализа, 00:00 EST
extern datetime AlTime = D'18:55' ;           //Время для трейдинга
extern datetime EndTime   = D'20:00' ;           //Время экспирации
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart ()
{       
   ObjectCreate ( 0 , "CORDON" , OBJ_HLINE , 0 , 0 ,Ask);         //созд гор линию по цене Ask
   
   ObjectSetInteger ( 0 , "CORDON" , OBJPROP_COLOR , clrDarkBlue );   //цвет темно-сиий
      
   ObjectSetInteger ( 0 , "CORDON" , OBJPROP_WIDTH , 1 );   //толщина линии 1
      
   ObjectSetInteger ( 0 , "CORDON" , OBJPROP_STYLE , STYLE_SOLID );   //линия сплош
   
   int IndexOfBar = iBarShift( _Symbol , 0 , StartTime, false ); //Считаем индекс бара по заданному времени StartTime
   double StartPrice = Open[IndexOfBar];                     //Получаем цену по индексу
   Print (IndexOfBar, ", " ,StartPrice);
   ObjectMove ( 0 , "CORDON" , 0 , 0 , StartPrice);           // меняем распол линии   
}
   
 
evillive :

İnternette çizim yapmak ve hesaplamalar yapmak imkansızdır, bu büyük bir hatadır. Init mümkün olduğunca çabuk kapanmalıdır.

Buradaki hata int IndexOfBar = iBarShift( ChartID () _Symbol , PERIOD_H1 , StringToTime (StartTime), true ); //Belirtilen zamanda StartTime'da bar indeksini hesapla

Zaman, tarih-saat biçiminde hemen ayarlanabilir, dönüştürme için makine zamanını boşa harcamanıza gerek yoktur, bu şekilde çalışır:

Değerli tavsiyeniz için teşekkür ederiz.

Ve hatayı bularak moralimi yükselttiğin için özel bir teşekkür. MQL4 ile arkadaş olabileceğime yeniden inanmaya başladım.

 
RichLux : Kod seçeneği çalışmıyor. Çizgi grafikte görünmüyordu.
 // Вставил такой код в скрипт - линию рисует синюю на черном графике слабо видно
#property strict                                                       // -------- Возможно, Дело в этой строке
        
extern string StartTime = "07:00" ;           //Начальное время для анализа, 00:00 EST
extern string AlTime = "18:55" ;           //Время для трейдинга
extern string EndTime   = "20:00" ;           //Время экспирации
void OnStart ()
{
   ObjectCreate ( "CORDON" , OBJ_HLINE , 0 , 0 ,Ask);     //созд гор линию по цене Ask   --- Для текущего графика ID пропускаем
   ObjectSetInteger ( 0 , "CORDON" , OBJPROP_COLOR ,DarkBlue);   //цвет темно-сиий  --- 0 = текущий график   DarkBlue - то же самое
   ObjectSetInteger ( 0 , "CORDON" , OBJPROP_WIDTH , 1 );   //толщина линии 1
   ObjectSetInteger ( 0 , "CORDON" , OBJPROP_STYLE , STYLE_SOLID );   //линия сплош

   // Первый параметр нужен типа string, а функция ChartID возвращает long
   int IndexOfBar = iBarShift( NULL , PERIOD_H1 , StringToTime (StartTime), true ); //  --- NULL = текущий график  ЗДЕСЬ И БЫЛА ОШИБКА???
   double StartPrice = Open[IndexOfBar];                     //Получаем цену по индексу
   ObjectMove ( ChartID (), "CORDON" , 0 , 0 , StartPrice);           // меняем распол линии   
}
 
evillive :

İnternette çizim yapmak ve hesaplamalar yapmak imkansızdır, bu büyük bir hatadır. Init mümkün olduğunca çabuk kapanmalıdır.


Ve init'ten gelen hesaplamalar ayrı bir fonksiyona alınırsa ve sonra bu fonksiyon init'e eklenirse, bu büyük bir hata olmaz mı?

LRA :

her şey zaten çalışıyor.

 
RichLux :

Ve init'ten gelen hesaplamalar ayrı bir fonksiyona alınırsa ve sonra bu fonksiyon init'e eklenirse, bu büyük bir hata olmaz mı?

Kodun çok uzun süre çalıştırılması büyük bir hata olacaktır, o zaman init işi tamamlamak zorunda kalacak ve kodun tamamen yürütülmesi için zamanı olmayacak. Yürütülebilir kod, ikincil işlevlere yapılan çağrılar dahil, önceden tanımlanmış MQL işlevlerinde bulunmalıdır - Uzman Danışmanlar için OnTick(), komut dosyaları için OnStart(), göstergeler için OnCalculate().

Init, programın başlamasından hemen önce, yalnızca bir kez yapılması gereken en düşük kodu içermelidir. Örneğin, global değişkenlerin , dizilerin, gösterge arabelleklerinin başlatılması.