MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1438

 

Danışmanı optimize ederken nasıl daha iyi olacağımı söyle:

Göstergeyi ayarlamaktan sorumlu birçok parametre vardır ve bu göstergeyi açıp kapatan bir parametre vardır.


Devre dışı bırakılmışsa, gösterge ayarlarını optimize etmenin kesinlikle bir anlamı yoktur.

Soru: Böyle anlamsız numaralandırmayı nasıl kesebilirsin?

 
ANDREY :

Yardımlarınız ve benim için yeni bilgiler için teşekkür ederim. Ama aklıma geldi ve aklıma çok daha kolay bir yol geldi...
1. Bir dakikalık mum için ilk siparişin açılması sırasında, bu ilk siparişin açıldığı sırada bu mumun X LOW değişkeninde hatırlıyorum.
2. Sıfır mum açma anında (yani, siparişin açıldığı mumdan sonraki mum), LoY[1] alıyorum
Ve sonra mantığı açıyorum ve bir sonuç çıkarıyorum
1. Eğer X = LoY[1] ise formasyondan sonra emir açılmıştır.   Açıldığı LoY mumları
2.Eğer LoY[1]< X ise, emir açıldıktan sonra fiyat tekrar düştü ve X'in altına düştü. Bu da emrin bu mumun LoY[] oluşumundan ÖNCE açıldığı anlamına gelir.
DÜŞÜK zamana yalnızca siparişin ne zaman açıldığını öğrenmek için DÜŞÜK zamana ihtiyacım vardı ... DÜŞÜK mumun oluşumundan önce veya sonra.
Ve bir dakikalık mumdaki tüm siparişler benim için 2p farkla biri diğerinden daha yüksek açık. Yani ilk mum açıldıkça diğerleri de bu mumda açıldı.
Yardım için teşekkürler.

Ama bu konu hakkında bir sorum daha var.
Burada bir dakikalık mumda X fiyatında bir emir açıldı. Birkaç saniye sonra aynı mum üzerinde X+2 puanlık başka bir emir açıldı. X ile X+2 arasında bir minimum fiyat vardır.
Ve bu minimumu bilmem gerekiyor. Farklı mumlardan bahsediyor olsaydık, iLow ve iLowest fonksiyonlarını kullanırdım.
Ancak bu işlevlerde, aralığın sınırları olarak çubukları belirtmeniz gerekir. Ve aralık sınırlarım çubuk değil, yalnızca bir çubuk olduğu için X ve X + 2 fiyatları.
İhtiyacım olan minimum değeri nasıl bulacağımı biliyorum. Ancak bunun için her tikte fiyat değerini takip etmeniz gerekiyor. Ayrıca X + 2 oluştuğu anda bir döngü ile nasıl yapılacağını ve iLow ve iLowest kullanılması durumunda olduğu gibi X + 2 oluşumu sırasında bir anda nasıl yapılacağını da biliyorum (hemen ve bir anda) .
Bana bunu öğretirseniz çok minnettar olurum.
teşekkürler

Dosyaya keneler yazın
 
MakarFX :
Dosyaya keneler yazın

Benim için yeni bilgiler için teşekkürler. Hiçbir zaman bir dosyaya kene yazmadım. Nasıl yapıldığını anlamak için bununla ilgili daha fazla bilgiyi nerede okuyabilirim?

? Ve başka bir soru ..... keneler dizisine fiyatlar ile yazabilir misiniz, böylece diziyi kenelerle sıralamanız ve minimum fiyat değerine sahip bir onay almanız gerektiğinde? Veya yardım ile

DiziMinimum


Yardım için teşekkürler.

 
ANDREY :

Benim için yeni bilgiler için teşekkürler. Hiçbir zaman bir dosyaya kene yazmadım. Nasıl yapıldığını anlamak için bu konuda daha fazla nereden okuyabilirim?

? Ve başka bir soru ..... keneler dizisine fiyatlar ile yazabilir misiniz, böylece diziyi kenelerle sıralamanız ve minimum fiyat değerine sahip bir onay almanız gerektiğinde? Veya yardım ile

DiziMinimum


Yardım için teşekkürler.

FileWriteString'e Yazma

Genel olarak, neye ihtiyacınız olduğunu anlamak zordur.

 
MakarFX :

FileWriteString'e Yazma

Genel olarak, neye ihtiyacınız olduğunu anlamak zordur.

Burada bir dakikalık mumda X fiyatında bir emir açıldı. Birkaç saniye sonra aynı mum üzerinde X+2 puanlık başka bir emir açıldı. X ile X+2 arasında bir minimum fiyat vardır.
Ve bu minimumu bilmem gerekiyor. Farklı mumlardan bahsediyor olsaydık, iLow ve iLowest fonksiyonlarını kullanırdım.
Ancak bu işlevlerde, aralığın sınırları olarak çubukları belirtmeniz gerekir. Ve aralık sınırlarım çubuklar değil, fiyatlar   X ve X+2   çünkü sadece bir bar var.
İhtiyacım olan minimum değeri nasıl bulacağımı biliyorum. Ancak bunun için her tikte fiyat değerini takip etmeniz gerekiyor. Bunu oluşum anında bir döngü ile nasıl yapacağımı biliyorum.   X+2   Ve X + 2 oluşumu sırasında hemen nasıl yapılır , iLow ve iLowest kullanımında olduğu gibi (hemen ve her seferinde).
Bana bunu öğretirseniz çok minnettar olurum.
teşekkürler
 
ANDREY :

Benim için yeni bilgiler için teşekkürler. Hiçbir zaman bir dosyaya kene yazmadım. Nasıl yapıldığını anlamak için bu konuda daha fazla nereden okuyabilirim?

? Ve başka bir soru ..... keneler dizisine fiyatlar ile yazabilir misiniz, böylece diziyi kenelerle sıralamanız ve minimum fiyat değerine sahip bir onay almanız gerektiğinde? Veya yardım ile

DiziMinimum


Yardım için teşekkürler.

Yapabilir. .bin dosyasına fonksiyon ile yazmanız yeterlidir.

 uint    FileWriteArray ( 
   int           file_handle,         // handle файла 
   const void &  array[],             // массив 
   int           start= 0 ,             // начальный индекс в массиве 
   int           count= WHOLE_ARRAY      // количество элементов 
   );

ve OKU

 uint    FileReadArray ( 
   int     file_handle,               // handle файла 
   void &  array[],                   // массив для записи 
   int     start= 0 ,                   // стартовая позиция для записи в массив 
   int     count= WHOLE_ARRAY            // сколько читать 
   );
 
Alexey Viktorov :

Yapabilir. .bin dosyasına fonksiyon ile yazmanız yeterlidir.

ve OKU

Benim için yeni bilgiler için teşekkürler .... ve sadece yeni değil .... sooooooo yeni mi? :=) Kendim öğrenmeye çalışacağım ....

 
ANDREY :

Benim için yeni bilgiler için teşekkürler .... ve sadece yeni değil .... sooooooo yeni mi? :=) Kendim öğrenmeye çalışacağım ....

Burada yeni ne var??? Belgeleri açın, başlıkları okuyun, "Dosya İşlemleri" bölümünü bulun, FileWriteArray () dahil olmak üzere çeşitli işlevlerin açıklaması vardır.

Bu, belgeleri daha sık okumanız gerektiği size ilk kez hatırlatılmıyor. Şu anda hiçbir şeye ihtiyacın olmasa bile. Bölüm başlıklarını okuduktan sonra belgelerde anlatılanları anlayacaksınız. Her şeyden önce buna ihtiyacın var.

 
Alexey Viktorov :

Burada yeni ne var??? Belgeleri açın, başlıkları okuyun, "Dosya İşlemleri" bölümünü bulun, FileWriteArray () dahil olmak üzere çeşitli işlevlerin açıklaması vardır.

Bu, belgeleri daha sık okumanız gerektiği size ilk kez hatırlatılmıyor. Şu anda hiçbir şeye ihtiyacın olmasa bile. Bölüm başlıklarını okuduktan sonra belgelerde anlatılanları anlayacaksınız. Her şeyden önce buna ihtiyacın var.

Değerli tavsiyen için teşekkürler. Şimdi, cevabını bilmediğim bir tür soruyla karşılaştığımda, belgeleri sadece kod yazarken paralel olarak okuyorum. Geçmiş kodları yazarken, dosyalara veri yazma ihtiyacı ile hiç karşılaşmadım, bu yüzden bu benim için tamamen yeni bir konu.
Söyleyin bana, bir dosyaya yazmadan fikrimi daha kolay uygulamak mümkün değil mi? Kodumdaki gibi. Bu çalışan bir kod değil, bir dakikalık mumda açılan bitişik siparişler arasındaki minimumu nasıl bulacağıma dair fikrimi göstermek için.
yardım için teşekkürler

 double P[ 60 ],Z;
int Tick,x,x1,G,G1,G2,T;

void OnTick ()
{
Tick++;

if ( OrdersTotal ()== 1 &&Tick< 2189 )
{
P[x]=Bid;
Print ( "------------------------P[x]=Bid------------------------=" , DoubleToString (P[x], 5 ), "  x " ,  x);
x++;
}
if ( OrdersTotal ()== 2 &&Tick== 2189 )
{
x1=x;
x= 0 ;
ArraySort (P, WHOLE_ARRAY , 0 ,MODE_ASCEND);
T=( 60 -x1);
Print ( "------------------------МИНИМУМ=------------------------=" , DoubleToString (P[T], 5 ), "  Tick " ,  Tick, "  x1 " ,  x);
}

if (Tick== 2176 ||Tick== 2188 )
{
OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 ,Ask+ 300 * Point ,Ask- 100 * Point , "300" , 0 );
G2=G;
G=Tick;
}
}

Yani, her tik fiyatını bir dosyaya değil, hemen bir diziye yazdım.

 
ANDREY :

Yardımlarınız ve benim için yeni bilgiler için teşekkür ederim. Ama aklıma geldi ve aklıma çok daha kolay bir yol geldi...
1. Bir dakikalık mum için ilk siparişin açılması sırasında, bu ilk siparişin açıldığı sırada bu mumun X LOW değişkeninde hatırlıyorum.
2. Sıfır mum açma anında (yani, siparişin açıldığı mumdan sonraki mum), LoY[1] alıyorum
Ve sonra mantığı açıyorum ve bir sonuç çıkarıyorum
1. Eğer X = LoY[1] ise formasyondan sonra emir açılmıştır.   Açıldığı LoY mumları
2.Eğer LoY[1]< X ise, emir açıldıktan sonra fiyat tekrar düşerek X'in altına düşer. Bu da emrin bu mumun LoY[] oluşumundan ÖNCE açıldığı anlamına gelir.

peki, x low'un birinci sırada ne tür bir değişim olduğu belli değil. zaman mı fiyat mı ve benzeri. keneler var, fiyatını alıyorsunuz, zamanı düzeltebiliyorsunuz ama yeni bir sipariş bekliyorsunuz. ve sonra maksimum veya minimum onayın zamanını sorun. O'nu işaretleyin ve Afrika'da onaylayın.