voidOnStart ()
{
int Target= 6 ; //Количество тайм-фреймовint Counter_UP= 0 ; //Счетчик нахождения цены над МАint Counter_DOWN= 0 ;
int MA = 200 ; //Период МАdouble bufer_MA[]; //Буфер для хендлаENUM_TIMEFRAMES frame1[ 10 ]; //Битная маска тайм-фреймов//___________________int битная маска ENUM Массив таймфреймов__________________________________________
frame1[ 1 ]= 1 ;
frame1[ 2 ]= 5 ;
frame1[ 3 ]= 15 ;
frame1[ 4 ]= 30 ;
frame1[ 5 ]= 16385 ;
frame1[ 6 ]= 16388 ;
frame1[ 7 ]= 16408 ;
frame1[ 8 ]= 32769 ;
frame1[ 9 ]= 49153 ;
//____________________________________________________________________________________________________________int KollSymbols = SymbolsTotal ( true ); //Колл. символов в маркет вотчAlert ( "Колл.Инстр = " ,KollSymbols);
//---int MA200; //Переменная для хендлаfor ( int i= 0 ; i<KollSymbols; i++) //Перебераем все символы из маркет вотч
{
string symbol = SymbolName (i, true ); //Выбираем имя символа из маркет вотч// Alert("symbol = ",symbol,"i= ",i);for ( int I= 1 ; I<=Target; I++) //Перебераем таймфреймы
{
MA200 = iMA (symbol,frame1[I],MA, 0 , MODE_EMA , PRICE_MEDIAN ); //хендл на выбранном таймеCopyBuffer (MA200, 0 , TimeCurrent (), 5 ,bufer_MA); // заполнение масива bufer_MA хендлом MA200 выбранного таймаArraySetAsSeries (bufer_MA, true ); //Разворачиваем массив как в тайм-серии//Alert("Символ - ",symbol,"i= ",i);// Alert("Simbol = ",symbol," bufer_MA[1] = ",bufer_MA[1]);if ( iClose (symbol,frame1[I], 1 ) > bufer_MA[ 1 ]) //Если цена 1 баре, на выбранном символе и тайме, БОЛЬШЕ цены скользяхи на 1 баре
{
//Alert("iClose= ",iClose(symbol,frame1[I],1), " bufer_MA[1]= ",bufer_MA[1]);
Counter_UP++;
if (Counter_UP==Target)
Alert ( "Инструмент для наблюдения в покупки - " ,symbol);
ArrayFree (bufer_MA); //Очистка буфера индикатора
}
else
{
ArrayFree (bufer_MA); //Очистка буфера индикатора
}
IndicatorRelease (MA200); //Удаление хендла
}
Counter_UP= 0 ;
Counter_DOWN= 0 ;
}
}
//+------------------------------------------------------------------+//+------------------------------------------------------------------+
normlarda çalışır. Ve 22 instr. işlemleri oldukça uzun bir süre min 5. Bu garip olsa da. Zamanının çoğunu diziye tutamacı yazarak geçiriyor. Profil Özeti
Soru. Listeden 22 enstrüman için 132 kez kopyalama yapılmasına rağmen, tanıtıcıdan diziye 5 değeri kopyalamak neden bu kadar zaman alıyor? Yani, 273 enstrüman için 1632 kez kopyalamanız ve tüm enstrümanların geçmişini sabit bir bilgisayara yüklemeniz gerekecek.
Kira27 # : Böylece senaryonun ortaya çıktığı ortaya çıktı.
normlarda çalışır. Ve 22 instr. işlemleri oldukça uzun bir süre min 5. Bu garip olsa da. Zamanının çoğunu diziye tutamacı yazarak geçiriyor. Profil Özeti
Soru. Listeden 22 enstrüman için 132 kez kopyalama yapılmasına rağmen, tanıtıcıdan diziye 5 değeri kopyalamak neden bu kadar zaman alıyor? Yani, 273 enstrüman için 1632 kez kopyalamanız ve tüm enstrümanların geçmişini sabit bir bilgisayara yüklemeniz gerekecek.
Eğer hiçbir şeyi mahvetmediysen.
İyi çalışıyor gibi görünüyor, alıntılar yüklenirse yavaşlamıyor. İlk lansman çok uzun, görünüşe göre alıntılar indiriliyor.
//+------------------------------------------------------------------+voidOnStart ()
{
int Target = 6 ; //Количество тайм-фреймовint Counter_UP = 0 ; //Счетчик нахождения цены над МАint Counter_DOWN = 0 ;
int MA = 200 ; //Период МАdouble bufer_MA[]; //Буфер для хендлаint MA200[][ 9 ]; //Переменная для хендлаstring symbol[];
ENUM_TIMEFRAMES frame1[ 9 ]; //Битная маска тайм-фреймов//___________________int битная маска ENUM Массив таймфреймов__________________________________________
frame1[ 0 ] = 1 ;
frame1[ 1 ] = 5 ;
frame1[ 2 ] = 15 ;
frame1[ 3 ] = 30 ;
frame1[ 4 ] = 16385 ;
frame1[ 5 ] = 16388 ;
frame1[ 6 ] = 16408 ;
frame1[ 7 ] = 32769 ;
frame1[ 8 ] = 49153 ;
//____________________________________________________________________________________________________________int KollSymbols = SymbolsTotal ( true ); //Колл. символов в маркет вотчPrint ( "Колл.Инстр = " , KollSymbols);
int res = 0 ;
for ( int i = 0 ; i < KollSymbols; i++)
{
for ( int I = 0 ; I < 9 ; I++) //Перебераем таймфреймы
{
ArrayResize (MA200, i + 1 );
ArrayResize (symbol, i + 1 );
symbol[i] = SymbolName (i, true ); //Выбираем имя символа из маркет вотч
MA200[i][I] = iMA (symbol[i], frame1[I], MA, 0 , MODE_EMA , PRICE_MEDIAN ); //хендл на выбранном таймеif (MA200[i][I] == INVALID_HANDLE )
PrintFormat ( "Инвалид хэндл, символ %s, тайм %d" , symbol[i], frame1[I]);
res++;
}
}
Print ( "Создано хэндлов = " + ( string )res);
//---for ( int i = 0 ; i < KollSymbols; i++)
{
for ( int I = 0 ; I < 9 ; I++) //Перебераем таймфреймы
{
int size = CopyBuffer (MA200[i][I], 0 , 1 , 1 , bufer_MA); // заполнение масива bufer_MA хендлом MA200 выбранного таймаPrintFormat ( "Скопировано %d, символ %s, тайм %d" , size, symbol[i], frame1[I]);
if (size > 0 )
if ( iClose (symbol[i], frame1[I], 1 ) > bufer_MA[ 0 ]) //Если цена 1 баре, на выбранном символе и тайме, БОЛЬШЕ цены скользяхи на 1 баре
{
Counter_UP++;
}
}
}
Print ( "Counter_UP = " + ( string )Counter_UP);
}
//+------------------------------------------------------------------+
Komut dosyasının anlamı, piyasa saatinden her enstrümanı 1 dakikadan 4 saate kadar olan zaman dilimlerinde sıralamaktır.
Bunu yapsaydım, bir dizi oluşturur ve mevcut olanı güncelleyerek geçmiş verileri içinde saklardım. Bu, ağır döngülerden ve CopyBuffer'dan kaçınacaktır. Her şey uçacak.
İyi çalışıyor gibi görünüyor, alıntılar yüklenirse yavaşlamıyor. İlk lansman çok uzun, görünüşe göre alıntılar indiriliyor.
Yanıt için teşekkürler ve performans sürümünüz için deneyeceğim)! Programın bitiminden önce neden tutamaçları silmiyorsunuz anlamıyorum? Veya programın sonunda otomatik olarak silinirler. Görev yöneticisi tarafından değerlendirilen operatör serbest bırakılmasa da.
Bunu yapsaydım, bir dizi oluşturur ve mevcut olanı güncelleyerek geçmiş verileri içinde saklardım. Bu, ağır döngülerden ve CopyBuffer'dan kaçınacaktır. Her şey uçacak.
Yanıt için teşekkürler ve performans sürümünüz için deneyeceğim)! Programın bitiminden önce neden tutamaçları silmiyorsunuz anlamıyorum? Veya programın sonunda otomatik olarak silinirler. Görev yöneticisi tarafından değerlendirilen operatör serbest bırakılmasa da.
Görünüşe göre bir yerde, betiğin tamamlanmasının ardından gösterge tutamaçlarının belirli bir süre sonra silindiğini okudum. Ama tam olarak öyle değil.
İyi! lütfen söyle sonra nasıl MQL5'te bir Expert Advisor'ı testederken, fareyi okların üzerine getirdiğinizde bir açılır pencerede istatistiklerinizden herhangi birini görüntüleyin?
Lütfen AMarkets komisyoncusu ile test ederken OrderSend işlevinin kripto para biriminde neden çalışmadığını söyleyin. Yönetmeliklere göre, kriptoda ticaret danışmanları hakkında bir yasak bulamadım. Ya da belki kodda hatalar var? GetLastError 4756 hatası veriyor
normlarda çalışır. Ve 22 instr.
işlemleri oldukça uzun bir süre min 5. Bu garip olsa da. Zamanının çoğunu diziye tutamacı yazarak geçiriyor. Profil Özeti 
Soru. Listeden 22 enstrüman için 132 kez kopyalama yapılmasına rağmen, tanıtıcıdan diziye 5 değeri kopyalamak neden bu kadar zaman alıyor? Yani, 273 enstrüman için 1632 kez kopyalamanız ve tüm enstrümanların geçmişini sabit bir bilgisayara yüklemeniz gerekecek.
tanıtıcı oluşturma ve silme hakkında,
işe yarıyor, nasıl doğru olacağı ile ilgileniyorum, umarım geliştiriciler der ki
İşte tam da bunu yapıyorum, yukarıdaki koda bakın, sorular da var))
Böylece senaryonun ortaya çıktığı ortaya çıktı.
normlarda çalışır. Ve 22 instr. işlemleri oldukça uzun bir süre min 5. Bu garip olsa da. Zamanının çoğunu diziye tutamacı yazarak geçiriyor. Profil Özeti
Soru. Listeden 22 enstrüman için 132 kez kopyalama yapılmasına rağmen, tanıtıcıdan diziye 5 değeri kopyalamak neden bu kadar zaman alıyor? Yani, 273 enstrüman için 1632 kez kopyalamanız ve tüm enstrümanların geçmişini sabit bir bilgisayara yüklemeniz gerekecek.
Eğer hiçbir şeyi mahvetmediysen.
İyi çalışıyor gibi görünüyor, alıntılar yüklenirse yavaşlamıyor. İlk lansman çok uzun, görünüşe göre alıntılar indiriliyor.
Komut dosyasının anlamı, piyasa saatinden her enstrümanı 1 dakikadan 4 saate kadar olan zaman dilimlerinde sıralamaktır.
Bunu yapsaydım, bir dizi oluşturur ve mevcut olanı güncelleyerek geçmiş verileri içinde saklardım. Bu, ağır döngülerden ve CopyBuffer'dan kaçınacaktır. Her şey uçacak.
Eğer hiçbir şeyi mahvetmediysen.
İyi çalışıyor gibi görünüyor, alıntılar yüklenirse yavaşlamıyor. İlk lansman çok uzun, görünüşe göre alıntılar indiriliyor.
Yanıt için teşekkürler ve performans sürümünüz için deneyeceğim)! Programın bitiminden önce neden tutamaçları silmiyorsunuz anlamıyorum? Veya programın sonunda otomatik olarak silinirler. Görev yöneticisi tarafından değerlendirilen operatör serbest bırakılmasa da.
Bunu yapsaydım, bir dizi oluşturur ve mevcut olanı güncelleyerek geçmiş verileri içinde saklardım. Bu, ağır döngülerden ve CopyBuffer'dan kaçınacaktır. Her şey uçacak.
Teşekkür ederim! Onu da düşüneceğim)
Yanıt için teşekkürler ve performans sürümünüz için deneyeceğim)! Programın bitiminden önce neden tutamaçları silmiyorsunuz anlamıyorum? Veya programın sonunda otomatik olarak silinirler. Görev yöneticisi tarafından değerlendirilen operatör serbest bırakılmasa da.
Görünüşe göre bir yerde, betiğin tamamlanmasının ardından gösterge tutamaçlarının belirli bir süre sonra silindiğini okudum. Ama tam olarak öyle değil.
Merhaba
terminalde doğrusal bir regresyon aracı var
aynı kanalı grafik nesnelerle çizen scriptler var
ancak sadece merkez çizgisi doğru çizilir ve sapma çizgileri merkezden yanlış mesafede çizilir
terminaldeki gibi olacak şekilde sapmayı hesaplamak için doğru formülü bilen varsa söyle
yada çözebilen var mı
TEŞEKKÜR EDERİM
Merhaba!
Lütfen AMarkets komisyoncusu ile test ederken OrderSend işlevinin kripto para biriminde neden çalışmadığını söyleyin. Yönetmeliklere göre, kriptoda ticaret danışmanları hakkında bir yasak bulamadım. Ya da belki kodda hatalar var? GetLastError 4756 hatası veriyor