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

 
boris.45 :
Seni nasıl ziyaret edebilirim? Bir sürü sorum var, danışmak istiyorum.
Birine soru sorduğunuzda, hitap ettiğiniz kişinin mesajının sağ alt köşesindeki "cevap" yazısına tıklayın. Aksi takdirde, uzun bir süre insanlar sorunuzun kime hitap ettiğini tahmin edecek ... :)
 
Söyle bana, danışmana komut dosyasından bir kapatma komutu göndermek mümkün mü?
 
granit77 :
Anahtarı hazır bir diziyle değiştirirdim, neden her seferinde önceden tanımlanmış değerler atayalım?

Teşekkürler, daha spesifik olabilir misin? Sonuçta buradaki önceden tanımlanmış değerler zaman dilimleridir ama farklı indikatörler için durumları takip eden kod farklı olacaktır... Biraz daha kod düzenlemek muhtemelen daha kolay... :) Genel olarak bugün çok zor bence - Gece uyuyamadım ve hala belirsizlikteyim...

 int AnaliseFunc ( string sy, int tf)
{
   
   CurAsk   =MarketInfo(Symbol(),MODE_ASK);
   CurBid   =MarketInfo(Symbol(),MODE_BID);
   OpnPrice =iOpen(NULL,PERIOD_M5, 0 );
   OpnPrice1=iOpen(NULL,PERIOD_M5, 1 );
   ClsPrice1=iClose(NULL,PERIOD_M5, 1 );
         
   if (sy== "" || sy== "0" ) sy=Symbol();
double
   BB_1  =iCustom(sy,tf, "BB_MA" , 13 , 1 , 1 , 1 ),
   BB_2  =iCustom(sy,tf, "BB_MA" , 13 , 1 , 1 , 2 ),
   BB_3  =iCustom(sy,tf, "BB_MA" , 13 , 1 , 1 , 3 ),
   AO1   =iAO(sy,tf, 1 ),
   AO2   =iAO(sy,tf, 2 ),
   AO3   =iAO(sy,tf, 3 ),
   AC1   =NormalizeDouble(iAC(sy,tf, 1 ), 8 )* 1000 ,
   AC2   =NormalizeDouble(iAC(sy,tf, 2 ), 8 )* 1000 ,
   AC3   =NormalizeDouble(iAC(sy,tf, 3 ), 8 )* 1000 ,
   AC4   =NormalizeDouble(iAC(sy,tf, 4 ), 8 )* 1000 ,
   AC5   =NormalizeDouble(iAC(sy,tf, 5 ), 8 )* 1000 ,
   SpMan1=iCustom(sy,tf, "SpearmanRankCorr" , 14 , 1000 , 30 , true , 0 , 1 ),
   SpMan2=iCustom(sy,tf, "SpearmanRankCorr" , 14 , 1000 , 30 , true , 0 , 2 ),
   DeM_1 =iDeMarker(sy,tf, 14 , 1 ),
   DeM_2 =iDeMarker(sy,tf, 14 , 2 ),
   Mom_1 =iMomentum(sy,tf, 14 ,PRICE_CLOSE, 1 ),
   Mom_2 =iMomentum(sy,tf, 14 ,PRICE_CLOSE, 2 ),
   Mom_3 =iMomentum(sy,tf, 14 ,PRICE_CLOSE, 3 );
   
//---------------- Проверка на разворот BB_MA -------------------------------------------------------   
   
   if (BB_1>BB_2 && BB_2<=BB_3 && BB_1< 0 )                               // Найден разворот BB вверх
      {
       switch (tf)
         {
             case 1 :     TrBBTurnUP_M1 = true ;  TrBBTurnDN_M1= false ;       // Флаг разворота вверх на М1
             case 5 :     TrBBTurnUP_M5 = true ;  TrBBTurnDN_M5= false ;       // Флаг разворота вверх на М5
             case 15 :    TrBBTurnUP_M15= true ;  TrBBTurnDN_M15= false ;     // Флаг разворота вверх на М15 
             case 30 :    TrBBTurnUP_M30= true ;  TrBBTurnDN_M30= false ;     // Флаг разворота вверх на М30 
             case 60 :    TrBBTurnUP_H1 = true ;  TrBBTurnDN_H1= false ;       // Флаг разворота вверх на H1
             case 240 :   TrBBTurnUP_H4 = true ;  TrBBTurnDN_H4= false ;       // Флаг разворота вверх на H4
             case 1440 :  TrBBTurnUP_D1 = true ;  TrBBTurnDN_D1= false ;       // Флаг разворота вверх на D1
             case 10080 : TrBBTurnUP_W1 = true ;  TrBBTurnDN_W1= false ;       // Флаг разворота вверх на W1
             case 43200 : TrBBTurnUP_MN = true ;  TrBBTurnDN_MN= false ;       // Флаг разворота вверх на MN
         }
      }
   if (BB_1<BB_2 && BB_2>=BB_3 && BB_1> 0 )                               // Найден разворот BB вниз
      {
       switch (tf)
         {
             case 1 :     TrBBTurnUP_M1 = false ;  TrBBTurnDN_M1= true ;       // Флаг разворота вниз на М1
             case 5 :     TrBBTurnUP_M5 = false ;  TrBBTurnDN_M5= true ;       // Флаг разворота вниз на М5
             case 15 :    TrBBTurnUP_M15= false ;  TrBBTurnDN_M15= true ;     // Флаг разворота вниз на М15 
             case 30 :    TrBBTurnUP_M30= false ;  TrBBTurnDN_M30= true ;     // Флаг разворота вниз на М30 
             case 60 :    TrBBTurnUP_H1 = false ;  TrBBTurnDN_H1= true ;       // Флаг разворота вниз на H1
             case 240 :   TrBBTurnUP_H4 = false ;  TrBBTurnDN_H4= true ;       // Флаг разворота вниз на H4
             case 1440 :  TrBBTurnUP_D1 = false ;  TrBBTurnDN_D1= true ;       // Флаг разворота вниз на D1
             case 10080 : TrBBTurnUP_W1 = false ;  TrBBTurnDN_W1= true ;       // Флаг разворота вниз на W1
             case 43200 : TrBBTurnUP_MN = false ;  TrBBTurnDN_MN= true ;       // Флаг разворота вниз на MN
         }
      }
//---------------------- Проверка на разворот Momentum -----------------------------------------------
   
   if (Mom_1>Mom_2 && Mom_2<=Mom_3 && Mom_1< 100.0 )
      {
       switch (tf)
         {
             case 1 :     TrMomTurnUP_M1 = true ;  TrMomTurnDN_M1= false ;       // Флаг разворота вверх на М1
             case 5 :     TrMomTurnUP_M5 = true ;  TrMomTurnDN_M5= false ;       // Флаг разворота вверх на М5
             case 15 :    TrMomTurnUP_M15= true ;  TrMomTurnDN_M15= false ;     // Флаг разворота вверх на М15 
             case 30 :    TrMomTurnUP_M30= true ;  TrMomTurnDN_M30= false ;     // Флаг разворота вверх на М30 
             case 60 :    TrMomTurnUP_H1 = true ;  TrMomTurnDN_H1= false ;       // Флаг разворота вверх на H1
             case 240 :   TrMomTurnUP_H4 = true ;  TrMomTurnDN_H4= false ;       // Флаг разворота вверх на H4
             case 1440 :  TrMomTurnUP_D1 = true ;  TrMomTurnDN_D1= false ;       // Флаг разворота вверх на D1
             case 10080 : TrMomTurnUP_W1 = true ;  TrMomTurnDN_W1= false ;       // Флаг разворота вверх на W1
             case 43200 : TrMomTurnUP_MN = true ;  TrMomTurnDN_MN= false ;       // Флаг разворота вверх на MN
         }
      }
      
   if (Mom_1<Mom_2 && Mom_2>=Mom_3 && Mom_1> 100.0 )
      {
       switch (tf)
         {
             case 1 :     TrMomTurnUP_M1 = false ;  TrMomTurnDN_M1= true ;       // Флаг разворота вверх на М1
             case 5 :     TrMomTurnUP_M5 = false ;  TrMomTurnDN_M5= true ;       // Флаг разворота вверх на М5
             case 15 :    TrMomTurnUP_M15= false ;  TrMomTurnDN_M15= true ;     // Флаг разворота вверх на М15 
             case 30 :    TrMomTurnUP_M30= false ;  TrMomTurnDN_M30= true ;     // Флаг разворота вверх на М30 
             case 60 :    TrMomTurnUP_H1 = false ;  TrMomTurnDN_H1= true ;       // Флаг разворота вверх на H1
             case 240 :   TrMomTurnUP_H4 = false ;  TrMomTurnDN_H4= true ;       // Флаг разворота вверх на H4
             case 1440 :  TrMomTurnUP_D1 = false ;  TrMomTurnDN_D1= true ;       // Флаг разворота вверх на D1
             case 10080 : TrMomTurnUP_W1 = false ;  TrMomTurnDN_W1= true ;       // Флаг разворота вверх на W1
             case 43200 : TrMomTurnUP_MN = false ;  TrMomTurnDN_MN= true ;       // Флаг разворота вверх на MN
         }
      }
//---------------------- Проверка DeMarker на перепроданность/перекупленность ---------
Görüyorsunuz, kesinlikle aynı kod devam ediyor, ancak diğer göstergelerin ticaret kriterlerinin kontrolleri zaten yapılıyor... Sadece tüm hindilerin tüm çeklerini tıkama arzusu var, kedi. Uzman Danışmanda, tek bir analitik blokta kullanılır, böylece değerlerini tik başına bir kez hesaplar, değişkenlere girer ve ardından ticaret kararları vermek için değişkenlerin değerlerini kullanır. İşte bir dizi önceden tanımlanmış değerin yardımıyla nasıl organize edeceğimiz, çözemiyorum ...
 
artmedia70 :

Teşekkürler, daha spesifik olabilir misin? Sonuçta buradaki önceden tanımlanmış değerler zaman dilimleridir ama farklı indikatörler için durumları takip eden kod farklı olacaktır... Biraz daha kod düzenlemek muhtemelen daha kolay... :) Genel olarak bugün çok zor bence - Gece uyuyamadım ve hala belirsizlikteyim...

Görüyorsunuz, kesinlikle aynı kod devam ediyor, ancak diğer göstergelerin ticaret kriterlerinin kontrolleri zaten yapılıyor... Sadece tüm hindilerin tüm çeklerini tıkama arzusu var, kedi. Uzman Danışmanda, tek bir analitik blokta kullanılır, böylece değerlerini tik başına bir kez hesaplar, değişkenlere girer ve ardından ticaret kararları vermek için değişkenlerin değerlerini kullanır. İşte bir dizi önceden tanımlanmış değerin yardımıyla nasıl organize edeceğimiz, çözemiyorum ...




belki sadece hesaplamaların önceliğini seçmeniz gerekir, yani. sahip olduğun gibi

ilk zorunlu koşul olarak (BB_1<0 ) geliyorsa, bundan sonra kalan BB_'yi hesaplamaya gerek yok, peki, eğer bir bileşik olarak alın ve ikinci ise, BB_'nin gerekli hesaplamasını yapın, birinci şart if yürütüldü ve if ... else çok verimli bir şekilde yapılandırılır ve yalnızca eğer varsa

Kodun muhtemelen satır sayısında daha büyük ve daha az okunabilir hale geleceğine katılıyorum, ancak performans artacak

 
IgorM :


belki sadece hesaplamaların önceliğini seçmeniz gerekir, yani. sahip olduğun gibi

ilk zorunlu koşul olarak (BB_1<0 ) geliyorsa, bundan sonra kalan BB_'yi hesaplamaya gerek yok, peki, eğer bir bileşik olarak alın ve ikinci ise, BB_'nin gerekli hesaplamasını yapın, birinci şart if yürütüldü ve if ... else çok verimli bir şekilde yapılandırılır ve yalnızca eğer varsa

Kodun muhtemelen satır sayısında daha büyük ve daha az okunabilir hale geleceğine katılıyorum, ancak performans artacak

Teşekkürler Igor, ne olacağını göreceğim. Biraz başka bir şey demek istiyorum... 1991-94 yıllarında, ülkenin bilgisayarlaşmasının şafağında hatırlıyorum, tam olarak hatırlamıyorum... ZX Spectrum için assembler'da programlama yapıyordum... 64Kb bellekte çok yavaş ve sınırlı... Yani bu alana 16386 Kb çıktıyı hızlı bir şekilde alabilmek için işlemcinin ekran bellek alanıyla çalışması için bir komut vardı. Belgelenmiş işlemci talimatı, geniş bir veri dizisiyle çalışmanın en hızlısıydı. Görünüşe göre onunla hiçbir şey yapamazsınız, ama hayır ... çıkış hızını dört kat artırmanın bir yolunu buldular. Yığınla çalışmak için komutlar vardı ve bu yüzden çok daha hızlı yürütüldüler. Bunu yaptılar: Ekrandan hemen sonra yığını kullanılmayan bir hafıza alanına aktardılar, bu alanı bir grafikle doldurdular. veri ve daha sonra yığını zaten ekrana taşıdıktan sonra, bellekte hazırlanan ekranı yığını doldurma komutuyla hızla ekran alanına attılar ... O zamanlar için bir mucize, ancak Spectrum için sihirdi. ...

Standart olmayan çalışma yöntemleriyle ilgilendiğim yer burası... Şey, bu bir nevi hangi komutların kaç döngüde yürütüldüğünü görmek ve benzer bir şey inşa etmek gibi... Mantıksal karşılaştırma komutlarının yerini ne alabilir, orada çıkarma, ya da aynı ruhta başka bir şey .. ..

 
artmedia70 :

Standart olmayan çalışma yöntemleriyle ilgilendiğim yer burası... Şey, bu bir nevi hangi komutların kaç döngüde yürütüldüğünü görmek ve benzer bir şey inşa etmek gibi... Mantıksal karşılaştırma komutlarının yerini ne alabilir, orada çıkarma, ya da aynı ruhta başka bir şey .. ..


Mql'de bu tür bilgileri bulamayacağınızı düşünüyorum - çalışma prensiplerine göre, gerçekten C sözdizimi ile Java'ya benziyor, hangi durumda veya daha hızlı olduğunu test etmeye çalışın, turbopascal'da hatırlıyorum, eğer daha hızlı olduğunu gördüğümde
 
artmedia70 :
Buraya hoş geldiniz.
 
Oper :
Söyle bana, danışmanı komut dosyasından devre dışı bırakmak için bir komut göndermek mümkün mü?

Yapabilir. Örneğin, global değişkenleri belirli bir duruma ayarlayan komut dosyaları kullanan bir danışmanı yönetiyorum. Bu değişkenlerin durumu

Expert Advisor'da analiz edilir ve gerekli komutlar yürütülür.

 
Tünaydın.
 
   SetIndexStyle( 2 , DRAW_ARROW );
   SetIndexArrow( 2 , 241 ); 
Okun boyutunu nasıl doğru bir şekilde ayarlayacağımı ve ayarlarda renk parametreleri sıfırlandığında boyutunun neden arttığını ve yeniden derlerken azaldığını söyleyin?
Neden: