Ardından, çubuğun çalıştığına dair doğru bir tespit yapmanız gerekir, ancak burada TK'ye olan tüm yaklaşımı hesaplamanız gerekir.
Şimdiye kadar, yazınızdan gördüğüm kadarıyla, bunu yapmanız gerekiyor:
Sonuç olarak, yayılma normdan daha büyükse, o zaman OnTick'e geri dönüyoruz ve yeni bir kene üzerinde yayılmayı kontrol ediyoruz, eğer normal ise, bir sipariş gönderiyoruz ve bu çubukta bir anlaşma olduğunu hatırlıyoruz. .
Ayrıca ikinci bir yol var:
Genel olarak, mantığa ne zaman kaydedilmesi gerektiğine karar vermeniz ve "Yeni Çubuk" oluşumundan önce artık kontrol etmemeniz gerekir.
Beyler tavsiye verirmisiniz İkinci hafta için gösterge verilerini bir dosyaya yazmaya çalışıyorum, böylece daha sonra okuyabilir ve verilere dayalı bir gösterge oluşturabilirim. Gösterge eğiticidir, belirli bir çubuğun her bir tıkındaki hacmi hesaplarım. Kene pozitifse, hacmini "+" ye, negatif ise - "-" ye eklerim. Alınan birikmiş hacimleri ekleyip delta alıyorum ve bu deltayı tahakkuk bazında dikkate alıyorum. Bu şekilde bir eğri elde edersiniz. Ancak, bu eğri yalnızca gerçek zamanlı olarak oluşturulur. Tarihe dayalı değildir. Bunu yapmak için bir dosyaya veri yazmaya karar verdim. Bu aşamada takıldı. Kederle, kodun derleyici hataları üretmediğinden emin oldum. Ancak ortaya çıkan ürün çalışmıyor. Gösterge daha önce - çalıştı. Dosya yazma kodunu ekledikten sonra gösterge çalışmayı durdurdu. Program, anlaşılmaz bir giriş içeren bir dosya oluşturur ve bunun üzerine ölür. Bütün gün oturuyorum, hiçbir şey anlamıyorum. Biri yardım edebilir mi?
//+------------------------------------------------------------------+//| ProjectName |//| Copyright 2012, CompanyName |//| http://www.companyname.net |//+------------------------------------------------------------------+#property version"1.00"#property strict#property indicator_separate_window#property indicator_buffers2#property indicator_label1"Вверх"#property indicator_type1DRAW_LINE#property indicator_color1 Salmon
#property indicator_style1STYLE_SOLID#property indicator_width12#property indicator_label2"Вниз"#property indicator_type2DRAW_LINE#property indicator_color2clrDarkTurquoise#property indicator_style2STYLE_SOLID#property indicator_width22inputstring InpFileName= "111.csv" ; // Имя файла inputstring InpDirectoryName= "Data" ; // Имя каталога datetime Время= 0 ; // Время прошлого бараdouble Bid1;
double Buf_1[];
// double ExtBuffer;long V1; // объем для текущего тика вверхlong V2; // накопленный объем для всех тиков вверх текущего бараlong V3; // объем текущего тика внизlong V4; // накопленный объем для всех тиков вниз для текущего бараlong V5; // отрицательные и положительные iVolume нарастающим итогом//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnInit ()
{
IndicatorDigits ( 0 );
SetIndexBuffer ( 0 ,Buf_1);
//SetIndexBuffer(1,Buf_2);
Bid1= Bid ;
V5= 0 ;
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate ( constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
datetime Вр= Time [ 0 ]; // Время текущего бараif (Вр>Время) // Если новый бар
{
Время=Вр; // Запомнить// Buf_1[0]=0; // и обнулить последний элемент буфера
}
datetime date_Buf_1[]; // массив дат индикатора datetime time_Buf_1[]; // массив времени // --- считаю объем для положительных и отрицательных тиков if ( Bid >=Bid1)
{
if ( Bid >Bid1) // если тик положительный..
{
V1= iVolume ( NULL , 0 , 0 ); // если повышающий цену тик, то находим его объем
V2= V1 + V2;
}
else
{
V1= 0 ; // если Bid1 = Bid2, т.е. изменение цены = 0, то iVolume этого тика присваиваем 0;
V2= V1 + V2;
}
}
else
{
V3 = iVolume ( NULL , 0 , 0 ); // если понижающий цену тик
V4 = V3 + V4; // то находим его объем
}
V5=V2-V4; // определяем разницу (дельту) между объемами положительных и отрицательных тиков
Bid1= Bid ;
Buf_1[ 0 ]=V5; // в буфер сгружаем дельту// ExtBuffer = Buf_1 [0];// double macurrent=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,0); // запись в файл данных буфера//--- установим для массивов признак таймсерии ArraySetAsSeries (Buf_1, true );
ArraySetAsSeries (date_Buf_1, true );
//--- скопируем таймсерию int copied= CopyTime ( NULL , 0 , 0 , 0 ,date_Buf_1);
//--- подготовим массив Buf_1 ArrayResize (Buf_1,copied);
//--- скопируем значения линии индикатора for ( int i= 0 ;i<copied;i++)
{
Buf_1[i]=V5;
}
//--- откроем файл для записи значений индикатора ResetLastError ();
int file_handle= FileOpen (InpDirectoryName+ "//" +InpFileName, FILE_READ | FILE_WRITE | FILE_CSV );
if (file_handle!= INVALID_HANDLE )
{
PrintFormat ( "Файл %s открыт для записи" ,InpFileName);
PrintFormat ( "Путь к файлу: %s\\Files\\" , TerminalInfoString ( TERMINAL_DATA_PATH ));
//--- сначала запишем значения индикатора FileWrite (file_handle,Buf_1[ 0 ]);
//--- запишем время и значения в файл for ( int i= 0 ;i<Buf_1[ 0 ];i++)
FileWrite (file_handle,time_Buf_1[i],Buf_1[i]);
//--- закрываем файл FileClose (file_handle);
PrintFormat ( "Данные записаны, файл %s закрыт" ,InpFileName);
}
elsePrintFormat ( "Не удалось открыть файл %s, Код ошибки = %d" ,InpFileName, GetLastError ());
return (rates_total);
}
//+------------------------------------------------------------------+
Beyler tavsiye verirmisiniz İkinci hafta için gösterge verilerini bir dosyaya yazmaya çalışıyorum, böylece daha sonra okuyabilir ve verilere dayalı bir gösterge oluşturabilirim. Gösterge eğiticidir, belirli bir çubuğun her tıkındaki hacmi hesaplarım. Kene pozitifse, hacmini "+" ye, negatif ise - "-" ye eklerim. Alınan birikmiş hacimleri ekleyip delta alıyorum ve bu deltayı tahakkuk bazında dikkate alıyorum. Bu şekilde bir eğri elde edersiniz. Ancak, bu eğri yalnızca gerçek zamanlı olarak oluşturulur. Tarihe dayalı değildir. Bunu yapmak için bir dosyaya veri yazmaya karar verdim. Bu aşamada takıldı. Kederle, kodun derleyici hataları üretmediğinden emin oldum. Ancak ortaya çıkan ürün çalışmıyor. Gösterge daha önce - çalıştı. Dosya yazma kodunu ekledikten sonra gösterge çalışmayı durdurdu. Program, anlaşılmaz bir giriş içeren bir dosya oluşturur ve bunun üzerine ölür. Bütün gün oturuyorum, hiçbir şey anlamıyorum. Biri yardım edebilir mi?
Yazmadan önce işaretçiyi dosyanın sonuna taşımak güzel olurdu.
Если выставить позицию за "правую границу" файла (больше, чем размер файла), то последующая запись в файл будет будет произведена не с конца файла, а с выставленной позиции. При этом между предыдущим концом файла и выставленной позицией будут записаны неопределенные значения...
Bu neden gerekli? Linki okudum ama bir şey anlamadım.
Tamam da niye? Dosyayı açıyorsunuz, işaretçi dosyanın başında, dosyanın başında ve bilgi yazılıyor. Doğru yere yazmak için işaretçi doğru yere taşınmalıdır.
Bir öğretmenle örnekler kullanarak MQL4'ü ücretsiz/ücretli öğrenmenizi sağlayan bir çevrimiçi eğitim hizmeti var mı? MQL4 eğitimini neredeyse okuyorum ama hiç programlayamıyorum. Daha önce, hiç programlama yapmadım. Bu başlıkta bir şeyler öğrenmeye çalışıyorum ama bir haftadır ilerleme kaydedemedim. Tavsiye verebilirmisin?
Bir öğretmenle örnekler kullanarak MQL4'ü ücretsiz/ücretli öğrenmenizi sağlayan bir çevrimiçi eğitim hizmeti var mı? MQL4 eğitimini neredeyse okuyorum ama hiç programlayamıyorum. Daha önce, hiç programlama yapmadım. Bu başlıkta bir şeyler öğrenmeye çalışıyorum ama bir haftadır ilerleme kaydedemedim. Tavsiye verebilirmisin?
2. Sergei Kovalev'e tüm saygımla, o sırada sorularımı da yanıtladı, ancak bence Kirill'den alınan ders daha anlaşılır. Yandex'e yazın ve dersine hemen 2 bağlantı yazın
Merhaba! Sitedeki ders kitabı benim için yeterliydi, birkaç yıl boyunca tuzaklara karşı yenerek kendim için göstergeler yazmayı öğrendim. Ama sorular devam ediyor. Şimdi göstergelerin neden yanlış gittiğini anlamıyorum. M1'de yaklaşık 12 saat sonra bazıları yanlış çizmeye başlar, ancak doğru kornaya basar. Bazıları yanlış işlemeyi çizer ve kornaya basar. M5'te beş kat daha uzun süre dayanırlar. Lütfen bana söyle.
2. Sergei Kovalev'e tüm saygımla, o sırada sorularımı da yanıtladı, ancak bence Kirill'den alınan ders daha anlaşılır. Yandex'e yazın ve dersine hemen 2 bağlantı yazın
Daha önce programlama yapmadıysanız "Cyril'den" derslerden bir şeyler öğrenmek gerçekten mümkün mü? Ve ne kadar süreceğini düşünüyorsun?
Başlangıçta böyle olsun.
Ardından, çubuğun çalıştığına dair doğru bir tespit yapmanız gerekir, ancak burada TK'ye olan tüm yaklaşımı hesaplamanız gerekir.
Şimdiye kadar, yazınızdan gördüğüm kadarıyla, bunu yapmanız gerekiyor:
Sonuç olarak, yayılma normdan daha büyükse, o zaman OnTick'e geri dönüyoruz ve yeni bir kene üzerinde yayılmayı kontrol ediyoruz, eğer normal ise, bir sipariş gönderiyoruz ve bu çubukta bir anlaşma olduğunu hatırlıyoruz. .
Ayrıca ikinci bir yol var:
Genel olarak, mantığa ne zaman kaydedilmesi gerektiğine karar vermeniz ve "Yeni Çubuk" oluşumundan önce artık kontrol etmemeniz gerekir.
Seni anlıyorum, teşekkürler!
Beyler tavsiye verirmisiniz İkinci hafta için gösterge verilerini bir dosyaya yazmaya çalışıyorum, böylece daha sonra okuyabilir ve verilere dayalı bir gösterge oluşturabilirim. Gösterge eğiticidir, belirli bir çubuğun her bir tıkındaki hacmi hesaplarım. Kene pozitifse, hacmini "+" ye, negatif ise - "-" ye eklerim. Alınan birikmiş hacimleri ekleyip delta alıyorum ve bu deltayı tahakkuk bazında dikkate alıyorum. Bu şekilde bir eğri elde edersiniz. Ancak, bu eğri yalnızca gerçek zamanlı olarak oluşturulur. Tarihe dayalı değildir. Bunu yapmak için bir dosyaya veri yazmaya karar verdim. Bu aşamada takıldı. Kederle, kodun derleyici hataları üretmediğinden emin oldum. Ancak ortaya çıkan ürün çalışmıyor. Gösterge daha önce - çalıştı. Dosya yazma kodunu ekledikten sonra gösterge çalışmayı durdurdu. Program, anlaşılmaz bir giriş içeren bir dosya oluşturur ve bunun üzerine ölür. Bütün gün oturuyorum, hiçbir şey anlamıyorum. Biri yardım edebilir mi?
Beyler tavsiye verirmisiniz İkinci hafta için gösterge verilerini bir dosyaya yazmaya çalışıyorum, böylece daha sonra okuyabilir ve verilere dayalı bir gösterge oluşturabilirim. Gösterge eğiticidir, belirli bir çubuğun her tıkındaki hacmi hesaplarım. Kene pozitifse, hacmini "+" ye, negatif ise - "-" ye eklerim. Alınan birikmiş hacimleri ekleyip delta alıyorum ve bu deltayı tahakkuk bazında dikkate alıyorum. Bu şekilde bir eğri elde edersiniz. Ancak, bu eğri yalnızca gerçek zamanlı olarak oluşturulur. Tarihe dayalı değildir. Bunu yapmak için bir dosyaya veri yazmaya karar verdim. Bu aşamada takıldı. Kederle, kodun derleyici hataları üretmediğinden emin oldum. Ancak ortaya çıkan ürün çalışmıyor. Gösterge daha önce - çalıştı. Dosya yazma kodunu ekledikten sonra gösterge çalışmayı durdurdu. Program, anlaşılmaz bir giriş içeren bir dosya oluşturur ve bunun üzerine ölür. Bütün gün oturuyorum, hiçbir şey anlamıyorum. Biri yardım edebilir mi?
Yazmadan önce işaretçiyi dosyanın sonuna taşımak güzel olurdu.
Yazmadan önce işaretçiyi dosyanın sonuna taşımak güzel olurdu.
Bu neden gerekli? Linki okudum ama bir şey anlamadım.
Bu neden gerekli? Linki okudum ama bir şey anlamadım.
Tamam da niye? Dosyayı açıyorsunuz, işaretçi dosyanın başında, dosyanın başında ve bilgi yazılıyor. Doğru yere yazmak için işaretçi doğru yere taşınmalıdır.
Beyler tavsiye verirmisiniz İkinci hafta için gösterge verilerini bir dosyaya yazmaya çalışıyorum...
Okudun mu?
Hala MQL4 öğreniyorum. Okuma.
Bir öğretmenle örnekler kullanarak MQL4'ü ücretsiz/ücretli öğrenmenizi sağlayan bir çevrimiçi eğitim hizmeti var mı? MQL4 eğitimini neredeyse okuyorum ama hiç programlayamıyorum. Daha önce, hiç programlama yapmadım. Bu başlıkta bir şeyler öğrenmeye çalışıyorum ama bir haftadır ilerleme kaydedemedim. Tavsiye verebilirmisin?
Hala MQL4 öğreniyorum. Okuma.
Bir öğretmenle örnekler kullanarak MQL4'ü ücretsiz/ücretli öğrenmenizi sağlayan bir çevrimiçi eğitim hizmeti var mı? MQL4 eğitimini neredeyse okuyorum ama hiç programlayamıyorum. Daha önce, hiç programlama yapmadım. Bu başlıkta bir şeyler öğrenmeye çalışıyorum ama bir haftadır ilerleme kaydedemedim. Tavsiye verebilirmisin?
1. mql4'teki dosyalarla çalışmak mql5'tekiyle aynıdır.
2. Sergei Kovalev'e tüm saygımla, o sırada sorularımı da yanıtladı, ancak bence Kirill'den alınan ders daha anlaşılır. Yandex'e yazın ve dersine hemen 2 bağlantı yazın
Merhaba! Sitedeki ders kitabı benim için yeterliydi, birkaç yıl boyunca tuzaklara karşı yenerek kendim için göstergeler yazmayı öğrendim. Ama sorular devam ediyor. Şimdi göstergelerin neden yanlış gittiğini anlamıyorum. M1'de yaklaşık 12 saat sonra bazıları yanlış çizmeye başlar, ancak doğru kornaya basar. Bazıları yanlış işlemeyi çizer ve kornaya basar. M5'te beş kat daha uzun süre dayanırlar. Lütfen bana söyle.
1. mql4'teki dosyalarla çalışmak mql5'tekiyle aynıdır.
2. Sergei Kovalev'e tüm saygımla, o sırada sorularımı da yanıtladı, ancak bence Kirill'den alınan ders daha anlaşılır. Yandex'e yazın ve dersine hemen 2 bağlantı yazın
Daha önce programlama yapmadıysanız "Cyril'den" derslerden bir şeyler öğrenmek gerçekten mümkün mü? Ve ne kadar süreceğini düşünüyorsun?