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

 
vikon писал(а) >>

Kodun yardımıyla bir sipariş açma konusunda bilgiliyim.

Yönetim özelliklerine sahip yarı otomatik bir sistem oluşturmak için başka bir şeye ihtiyacım var.

Manuel olarak bir pozisyon açıyorum, ancak EA parti büyüklüğünü izliyor ve varsayılan olarak MT'de değiştiriyor (hizmet\ayarlar\ticaret\varsayılan hacim)

Bunu yapmak mümkün mü?

Numara. En azından MQL4'te değil

 
granit77 >> :

Yardım size şunları söyleyecektir:

double iWPR (dize sembolü, int zaman çerçevesi, int periyodu, int shift)

Bu nedenle, doğru olacaktır:

ÇOK TEŞEKKÜRLER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 
İnsanlar, ancak fiyat tablosunu kullanmadan MACD'de belirli bir sütunun oluşum süresini nasıl çıkarabilirim?
 
Noterday >> :
İnsanlar, ancak fiyat tablosunu kullanmadan MACD'de belirli bir sütunun oluşum süresini nasıl çıkarabilirim?

Sütun, fiyat tablosundaki çubuk oluşum zamanına karşılık gelir,

yani, belirli bir çubuğun numarasını bilmeniz gerekir.

 

Kod optimizasyonu için kurallar nelerdir? Algoritmayla değil, yazma kurallarıyla ilgileniyor.

Daha kesin olmak gerekirse, işte bir örnek:

iki "aynı" komut dosyası vardır:

 int start ( )
   {
//----
   int start = GetTickCount ( ) ;
   int Massiv [ 100000000 ] ;
   int x = ArraySize ( Massiv ) ;
   for ( int a = 0 ; a < = x ; a + + )
     {
    Massiv [ a ] = a ;
     }
   Alert ( "прошло времени: " , GetTickCount ( ) - start ) ;
//----
   return ( 0 ) ;
   }

ve

 int start ( )
   {
//----
   int start = GetTickCount ( ) ;
   int Massiv [ 100000000 ] ;
   for ( int a = 0 ; a < = ArraySize ( Massiv ) ; a + + )
     {
    Massiv [ a ] = a ;
     }
   Alert ( "прошло времени: " , GetTickCount ( ) - start ) ;
//----
   return ( 0 ) ;
   }

Birincisi, ikincisinden iki kat daha hızlıdır. (4 saniyem var)

yüz milyonluk dizilerin nadiren kullanıldığı açıktır :-) ve gerçekte kazanç normal bir dizi için birkaç milisaniye olacaktır ve asıl problem bu tür önemsiz şeylerde değil, beceriksiz algoritmalardadır, ama yine de ...

 
beruk >> :

Kod optimizasyonu için kurallar nelerdir? Algoritmayla değil, yazma kurallarıyla ilgileniyor.

Daha kesin olmak gerekirse, işte bir örnek:

iki "aynı" komut dosyası vardır:

ve

Birincisi, ikincisinden iki kat daha hızlıdır. (4 saniyem var)

yüz milyonluk dizilerin nadiren kullanıldığı açıktır :-) ve gerçekte kazanç normal bir dizi için birkaç milisaniye olacaktır ve asıl problem bu tür önemsiz şeylerde değil, beceriksiz algoritmalardadır, ama yine de ...

Bu nedenle, hiçbir kural yoktur. Yani, uygun gördüğünüz gibi yazabilirsiniz ve işe yarayacaktır. Elbette değişen derecelerde etkililik ile.

Her işlem için, zaman cinsinden maliyeti bilinir - bunu dil standartlarında ve ayrıca döngülerin ve diğer dil yapılarının çalışma sırasında bulabilirsiniz (C standardı - bundan bahsediyorum çünkü anlamaya çalıştığınızdan şüpheliyim. temel bilgilerden başlayarak - tüm belirtilmemiş olarak önerilen üretici açıkça bu dilin standardına atıfta bulunur).

İkinci durumda, sürekli olarak ArraySize(Array) işlevini çağırırsınız - bu en pahalı işlemdir (işlev çağrısı - herhangi biri, bu belirli değil) ve karşılaştırma işlemi her döngüde çağrılır.

Bu sürümde: döngü

for (int a=ArraySize(Array)-1;a>0;a--)

aynı şeyi yapacak, ancak büyüklük sıraları daha hızlı. Döngünün kendisinin organizasyonunu kastediyorum. Döngüde büyük hesaplamalar varsa, fark önemli olmayacaktır.

Bir "ama" var - bir test cihazı veya yeniden eğitilmiş ağlar kullanıyorsanız - orada fark çok önemli olacak ve kendini çok, çok gösterecek ....

Evet, bir şey daha var: ilk komut dosyasında bir hata var - sınırların dışında bir dizi. Kılavuzu okuyun - hepsi orada. Bu şekilde düzeltin:

int x=ArraySize(Array);
for (int a=0;a<x;a++)

İyi şanlar.

 

Tünaydın

Lütfen bu bölümün nasıl yorumlanacağını FileOpen ile ilgili öğreticide açıklayın.

===

Dosyalardaki kayıtların içeriği

Herhangi bir kayıt modu kombinasyonu için, veriler dosyaya boşluksuz girilir. FILE_BIN modunda dosyalar oluşturulduğunda, veri kayıtları arka arkaya girilir. Dosyaya yazılan verinin türüne (ve bunun için kullanılan yazma işlevlerine) bağlı olarak, kayıt grupları arasında satır sonu karakterlerinin ("\r\n") bir kombinasyonu yazılabilir. FILE_CSV modunda dosyalar oluşturulurken, veri kayıtları bir dosya sınırlayıcı (genellikle ';') ile ayrılır ve kayıt grupları (bir satırın bileşenleri) satır sonu karakterlerinin ("\r\ n").

===

"int FileOpen ( string dosya adı , int modu , int sınırlayıcı =';' ) " ile her şey açık

ve ("\r\n") nereye koyulur? FILE_CSV ile kullanmak mümkün mü? ("\r\n") ile bir örnek verin lütfen, aptal o.0

 
Merhaba! Bu konuda bir uzman yazmanız gerekiyor: https://www.mql5.com/ru/code/8663 göstergesi yani HP.mq4 (büyürse alırız düşerse satarız). Yeniden çizilmesine rağmen, ancak örneğin 100-200 gibi büyük periyotlar kullanıldığında yeniden çizim tolere edilebilir. Veya örneğin bu türkiyeden sinyal düşükse MA sinyali ekleyebilirsiniz, daha yüksekse alırız satarız İpi kim çekecek?
 
teetrinker >> :

Tünaydın

Lütfen bu bölümün nasıl yorumlanacağını FileOpen eğitiminde açıklayın.

===

Dosyalardaki kayıtların içeriği

Herhangi bir kayıt modu kombinasyonu için, veriler dosyaya boşluksuz girilir. FILE_BIN modunda dosya oluştururken, veri kayıtları arka arkaya girilir. Dosyaya yazılan verinin türüne (ve bunun için kullanılan yazma işlevlerine) bağlı olarak, kayıt grupları arasında satır sonu karakterlerinin ("\r\n") bir kombinasyonu yazılabilir. FILE_CSV modunda dosyalar oluşturulurken, veri kayıtları bir dosya sınırlayıcı (genellikle ';') ile ayrılır ve kayıt grupları (bir satırın bileşenleri) satır sonu karakterlerinin ("\r\ n").

===

"int FileOpen ( string dosya adı , int modu , int sınırlayıcı =';' ) " ile her şey açık

ve ("\r\n") nereye koyulur? FILE_CSV ile kullanmak mümkün mü?

Hiçbir yerde. Kılavuzda açıkça Rusça yazılmıştır: "kayıt grupları (bir satırın bileşenleri), satır sonu karakterlerinin bir kombinasyonu ("\r\n") kullanılarak ayrılır".

 

lütfen söyle

EA'da, birkaç uyarı bir blokta arka arkaya, birkaçı da başka bir blokta arka arkaya

günlükteki testte, arızalı, ancak arızalı - ilk bloktan 2, ikinciden 3, ardından birinciden 3 ve ikinciden son 2 uyarı

her kaymadan sonra 500 koyun, yani yarım saniye ve hiçbir şey - her şey de bozuk ve 10'u da 1 saniyede konabilir

sebebi ne?

uyarılar nasıl sıralanır?