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

 
ANDREY :

Size bir şekilde yardımcı olabildiğime sevindim :=) :=) :=)

Şimdi kodum hakkında, ki muhtemelen o kadar kötü ki, onu araştırmak hoş değil. Ama en azından bu kodun tek bir dizisini (fiyat değerleriyle) bir dosyaya yazsaydım kodumun avantajı ne olurdu ve sonra program onu bu dosyadan okuyacak ve değerlerini daha sonraki hesaplamalarda kullanacaktı. ? Ve sadece 60 elemanlı bir dizi. Kodumda özellikle ne daha iyi olurdu?
Yardım için teşekkürler.

Kodun kalitesi ile ilgili değil. Başkalarının koduna bakmam. İhtiyacım olan veya bir sadaka saldırısının ızdırabı dışında, :=))) ama bu giderek daha az oluyor ...

İsterseniz sonuç olarak neye ihtiyacınız olduğunu ve bunun için ne yaptığınızı kelimelerle anlatabilirsiniz. O zaman sorunu çözme yönünün ne kadar doğru olduğu netleşecektir.

 
Alexey Viktorov :

ya da bir hayırseverlik saldırısının ıstırabında, :=))) ....

Ve bir sonraki saldırı ne zaman olacak???   :=))) Alevlenmelerin tam olarak erken ilkbaharda gerçekleştiğini okudum.   :=))) İyileşmenizin daha hızlı bitmesini istiyorum.   :=)))

Ve saldırılar olabildiğince sıktı ..... :=)))

 
ANDREY :

Bahşiş için teşekkürler. Kovalev'in öğreticisinden DOSYA İŞLEMLERİ bölümünü okumaya başladım bile. Gerçekten de... bir şeyler biraz netleşmeye başlıyor. Test ettiğim tüm Uzman Danışmanların, Tester terminalinin dizininde bulunan .cvv uzantılı (programım tarafından oluşturulmamış olsa da) çubuk fiyat değerlerine sahip metin dosyalarını okuduğunu fark ettim.
Yani herhangi bir programdan bilgi (veri) dosyaya yazılır ve bu veri herhangi bir program tarafından da dosyadan okunur. Bana öyle geldi ki, programın kendisinde saklanması tavsiye edilmeyen dosyalara büyük miktarda veri yazılıyor. Dahil edilen bir dosya mqh gibi bir şey.
Eğer sizin için zor değilse, bana Alexey Viktorov'un "..csv yazıp bir diziye okumak ister misiniz ..... " ifadesinin benim kodumla ilgili olarak ne olduğunu açıklayabilirsiniz.
Sanırım bir metin dosyası demek istiyor   .cvv, Tester kataloğundan çubuk fiyatları ile. Ama tam olarak ne demek istediğini hala anlamıyorum. Sonuçta bu .cvv dosyaları benim tarafımdan değil, Alpari bayi programı tarafından yazılıyor... Program diziden nasıl okuyor - genel olarak biraz anlıyorum ... adresindeki dizi hücresine erişiyor, içine giriyor hücre ve hücre değerine erişir (yani okuyun). Bir program bir diziden değil de bir diziye nasıl okuyabilir? Bu bir tür çözülmez çelişkidir .... amatörce görüşüme göre bana öyle geliyor. Nedense bana öyle geliyor ki bir diziye yalnızca bazı değerler yazabilirsiniz. Ve sadece bir diziden okuyabilirsiniz

Kovalev'in bin dosyasında dizi girişi yok. Ders kitabı 2009. Sadece binfile vardı. Ve bin dosyasındaki dizi daha sonra ortaya çıktı. Bin dosyaları daha hızlı yazılır ve okunur. Satır sonları yoktur. Ama insan tarafından okunamazlar)

 
Valeriy Yastremskiy :

Kovalev için bir binfile dizi yazmak mevcut değil. Ders kitabı 2009. Sadece binfile vardı. Ve bin dosyasındaki dizi daha sonra ortaya çıktı. Bin dosyaları daha hızlı yazılır ve okunur. Satır sonları yoktur. Ama insan tarafından okunamazlar)

Benim için yeni bilgiler için çok teşekkür ederim. Ve bunu yüzde 50 anladım .... ve gelişimimin bu aşamasında buna ihtiyacım olduğundan eminsem, bu konuyu iyice inceleyeceğim.
Ama şimdi küçük kodum ve bunun yardımıyla bir dakikalık mumda 2 puan farkla açılan 2 bitişik sipariş arasındaki minimum fiyatı en az süre ve diğer bilgisayar ve programla bulmaya çalışıyorum. kaynaklar . Bunu yapmak için bir dizi oluşturdum. Beni burada, bu dizinin bir fonksiyon kullanılarak bir dosyaya yazılması ve daha sonra sonraki hesaplamalar için bu dosyadan (yani bir diziden) veri almak için başka bir fonksiyon kullanılarak yazılması gerektiğine beni ikna etmeye çalışıyorlar.

Ama söyleyin bana, bu kodun tek bir dizisini (fiyat değerleriyle) bir dosyaya yazsam ve sonra program onu bu dosyadan okuyup değerlerini daha sonraki hesaplamalarda kullansaydım kodumun avantajı ne olurdu? Ve sadece 60 elemanlı bir dizi. Kodumda özellikle ne daha iyi olurdu?

Doğal olarak, test sırasında, aralarında minimumun hesaplanmasının gerekli olacağı dakika mumlarının içinde bu tür birçok sipariş olacaktır. Kodumda, bana gelen bir fikrin sadece bir örneği.
Aleksey Viktorov bu soruya benim için cevap veremez çünkü henüz hayırsever bir saldırı almamıştır .... ve bununla bağlantılı olarak ıstırap ve kasılmalar yaşamamıştır :=).
Belki de ilerlememe yardımcı olacak tüm ön koşulları zaten olgunlaştırdın.


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

 
ANDREY :

Kâse'nin yaratıcısını anlamak zor. Tüm hesaplamaları Göstergeye aktarabilir ve Expert Advisor'da bir sinyal alabilirsiniz.

 
ANDREY :

Benim için yeni bilgiler için çok teşekkür ederim. Ve bunu yüzde 50 anladım .... ve gelişimimin bu aşamasında buna ihtiyacım olduğundan eminsem, bu konuyu iyice inceleyeceğim.
Ama şimdi küçük kodum ve bunun yardımıyla bir dakikalık mumda 2 puan farkla açılan 2 bitişik sipariş arasındaki minimum fiyatı en az süre ve diğer bilgisayar ve programla bulmaya çalışıyorum. kaynaklar . Bunu yapmak için bir dizi oluşturdum. Beni burada, bu dizinin bir fonksiyon kullanılarak bir dosyaya yazılması ve daha sonra sonraki hesaplamalar için bu dosyadan (yani bir diziden) veri almak için başka bir fonksiyon kullanılarak yazılması gerektiğine beni ikna etmeye çalışıyorlar.

Ama söyleyin bana, bu kodun tek bir dizisini (fiyat değerleriyle) bir dosyaya yazsam ve sonra program onu bu dosyadan okuyup değerlerini daha sonraki hesaplamalarda kullansaydım kodumun avantajı ne olurdu? Ve sadece 60 elemanlı bir dizi. Kodumda özellikle ne daha iyi olurdu?

Doğal olarak, test sırasında, aralarında minimumun hesaplanmasının gerekli olacağı dakika mumlarının içinde bu tür birçok sipariş olacaktır. Kodumda, bana gelen bir fikrin sadece bir örneği.
Aleksey Viktorov bu soruya benim için cevap veremez çünkü henüz hayırsever bir saldırı almamıştır .... ve bununla bağlantılı olarak ıstırap ve kasılmalar yaşamamıştır :=).
Belki de ilerlememe yardımcı olacak tüm ön koşulları zaten olgunlaştırdın.


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

Mantık biraz anlaşılmaz. Neden bir diziye birkaç veri yazalım. değişkenlerde saklanabilirler. Bir dizi, aynı türden birçok değişken olduğunda. Ve 5'ten az varsa, bunları değişkenlerde de hatırlayabilirsiniz. Dizideki kayıtlı verileri daha sonra aynı Expert Advisor'da okumak için neden bir dosyaya yazalım. Onlar da mevcuttur. Bu danışmanda değil, farklı danışmanlar arasında değişim veya daha fazla işlem için bir dosyaya yazarlar. Ayrıca, yanılmıyorsam dizi her zaman globaldir.

 
ANDREY :

Benim için yeni bilgiler için çok teşekkür ederim. Ve bunu yüzde 50 anladım .... ve gelişimimin bu aşamasında buna ihtiyacım olduğundan eminsem, bu konuyu iyice inceleyeceğim.
Ama şimdi küçük kodum ve bunun yardımıyla bir dakikalık mumda 2 puan farkla açılan 2 bitişik sipariş arasındaki minimum fiyatı en az süre ve diğer bilgisayar ve programla bulmaya çalışıyorum. kaynaklar . Bunu yapmak için bir dizi oluşturdum. Beni burada, bu dizinin bir fonksiyon kullanılarak bir dosyaya yazılması ve daha sonra sonraki hesaplamalar için bu dosyadan (yani bir diziden) veri almak için başka bir fonksiyon kullanılarak yazılması gerektiğine beni ikna etmeye çalışıyorlar.

Ama söyleyin bana, bu kodun tek bir dizisini (fiyat değerleriyle) bir dosyaya yazsam ve sonra program onu bu dosyadan okuyup değerlerini daha sonraki hesaplamalarda kullansaydım kodumun avantajı ne olurdu? Ve sadece 60 elemanlı bir dizi. Kodumda özellikle ne daha iyi olurdu?

Doğal olarak, test sırasında, aralarında minimumun hesaplanmasının gerekli olacağı dakika mumlarının içinde bu tür birçok sipariş olacaktır. Kodumda, bana gelen bir fikrin sadece bir örneği.
Aleksey Viktorov bu soruya benim için cevap veremez çünkü henüz hayırsever bir saldırı almamıştır .... ve bununla bağlantılı olarak ıstırap ve kasılmalar yaşamamıştır :=).
Belki de ilerlememe yardımcı olacak tüm ön koşulları zaten olgunlaştırdın.


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

Başlangıç zaten o kadar uzak ki, ayrıntılı olarak cevaplamak oldukça zor ... Ama yine de akıllı olmaya çalışacağım ...

Yanlış hatırlamıyorsam siparişin açıldığı mumun ne zaman Düşük oluştuğunu tespit etmek gerekiyor. Bu mum akıyorsa sorun yok: değişkene bir emir açıp iki sayıdan küçüğünü koyuyoruz ve mum kapanana kadar buna devam ediyoruz. Ancak, bu mum zaten 10'uncu olduğunda bunu belirlemek gerekirse, bu zaten mql4 için bir sorundur. Bunu mql5'te yapmak oldukça kolaydır, belirtilen zamanda "gelen ve giden" işaretlerini kopyalamanız yeterlidir ve bu dizi ihtiyacınız olan her şeyi içerir. Ve mql4 için, bir dosyaya keneler yazmanız teklif edildi, böylece daha sonra bu keneleri alabilir ve bu kene dizisinde zaten belirleyebilirsiniz, eğer o mumun Düşük değeri dizideki minimum değerden küçükse, o zaman Düşük oldu. sipariş açılmadan önce. Eşitlerse, siparişin açılmasından sonra Düşük oluştu.

Her ne kadar… EA çalışıyorsa, burada söylendiği gibi onu hemen bir değişkene tanımlamanız yeterlidir, bunun için “Matematiksel Fonksiyonlar” bölümündeki belgelerde okuyabileceğiniz bir fonksiyon var. EA herhangi bir nedenle çalışmıyor, daha sonra keneler kaydedilmeyecek ve hatta almayacak.

 
Alexey Viktorov :

Başlangıç zaten o kadar uzak ki, ayrıntılı olarak cevaplamak oldukça zor ... Ama yine de akıllı olmaya çalışacağım ...

Yanlış hatırlamıyorsam siparişin açıldığı mumun en düşük ne zaman oluştuğunu tespit etmek gerekiyor. Bu mum akıyorsa sorun yok: değişkene bir emir açıp iki sayıdan küçüğünü koyuyoruz ve mum kapanana kadar buna devam ediyoruz. Ancak bu mum zaten 10'uncu olduğunda bunu belirlemek gerekirse, bu zaten mql4 için bir sorundur. Bunu mql5'te yapmak oldukça kolaydır, sadece keneleri belirtilen zamanda "ve şuraya" kopyalayın ve bu dizi ihtiyacınız olan her şeyi içerir. Ve mql4 için, bir dosyaya keneler yazmanız teklif edildi, böylece daha sonra bu keneleri alabilir ve bu kene dizisinde zaten belirleyebilirsiniz, eğer o mumun Düşük değeri dizideki minimum değerden küçükse, o zaman Düşük oldu. sipariş açılmadan önce. Eşitlerse, siparişin açılmasından sonra Düşük oluştu.

Her ne kadar… EA çalışıyorsa, burada söylendiği gibi onu hemen bir değişkene tanımlamanız yeterlidir, bunun için “Matematiksel Fonksiyonlar” bölümündeki belgelerde okuyabileceğiniz bir fonksiyon var. EA herhangi bir nedenle çalışmıyor, daha sonra keneler kaydedilmeyecek ve hatta almayacak.

Benim için yeni bilgiler için çok teşekkür ederim....özellikle bu durumla ilgili olarak mql4'ün mql5'e kıyasla olanakları hakkında. Ama garip bir şekilde, kendimi tarif ettiğiniz sorunu çözdüm ve çözülme şekli, özgünlüğü ve optimalliği ile beni etkiledi.
Ondan sonra, #14373 numaralı bu yazıda formüle edilen benzer bir görevle karşılaştım
, numaralı bir dosyaya keneler yazmam önerildi.

Bir dosyaya kene yazmak yerine bir dosyaya kene yazmadan sorunumu çözen bir kod oluşturdum Bu kod ile deniyorum   en az zaman ve diğer bilgisayar ve program kaynakları ile bir dakikalık mumda açılan 2 bitişik emir arasındaki minimum fiyatı 2 puan farkla bulun. Doğal olarak, test sırasında,   bu tür garantiler   aralarında minimumu hesaplamanız gereken dakika mumları içinde,   çok olacak . Kodumda, bana gelen bir fikrin sadece bir örneği.

Ve şimdi böyle bir sorunun cevabıyla ilgileniyorum, burada bana tavsiye ettiğiniz gibi, siz de dahil olmak üzere bir dosyaya keneler yazsam kodumun avantajı ne olurdu? Kodumda özellikle ne daha iyi olurdu?


Valeriy Yastremskiy bu soruya ışık tutuyor ama bana bir dosyaya kene yazmamı tavsiye eden kişinin fikrini almak isterim.
Yardım için teşekkürler

 
Valeriy Yastremskiy :

Mantık biraz anlaşılmaz. Neden bir diziye birkaç veri yazalım. değişkenlerde saklanabilirler. Bir dizi, aynı türden birçok değişken olduğunda. Ve 5'ten az varsa, bunları değişkenlerde de hatırlayabilirsiniz. Dizideki kayıtlı verileri daha sonra aynı Expert Advisor'da okumak için neden bir dosyaya yazalım. Onlar da mevcuttur. Bu danışmanda değil, farklı danışmanlar arasında değişim veya daha fazla işlem için bir dosyaya yazarlar. Ayrıca, yanılmıyorsam dizi her zaman globaldir.

Tavsiye için teşekkürler. Katılıyorum, bazen keneler 5 veya daha az olabilir. Ancak bir dakikalık mumda, saniyelerden çok daha fazla onay işareti olabilir ve bitişik siparişler arasındaki sayıları da 5'ten çok olabilir.
Düşüncelerimin vurgulanan kırmızıyla çakışmasından özellikle memnun oldum. Ama onlardan emin değildim çünkü daha deneyimli yoldaşlar belirsizliğimi artırdı.

 
ANDREY :

Benim için yeni bilgiler için çok teşekkür ederim....özellikle bu durumla ilgili olarak mql4'ün mql5'e kıyasla olanakları hakkında. Ama garip bir şekilde, kendimi tarif ettiğiniz sorunu çözdüm ve çözülme şekli, özgünlüğü ve optimalliği ile beni etkiledi.
Ondan sonra, bu yazıda formüle edilen benzer bir görevle karşılaştım.

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


Bir dosyaya keneler yazmam önerildi

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

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

Alexey Viktorov , 2021.04.09 18:33

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            // сколько читать 
   );

Bir dosyaya kene yazmak yerine, bir dosyaya kene yazmadan sorunumu çözen bir kod oluşturdum.

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.


Bu kod ile çalışıyorum   en az zaman ve diğer bilgisayar ve program kaynakları ile bir dakikalık mumda açılan 2 bitişik emir arasındaki minimum fiyatı 2 puan farkla bulun. Doğal olarak, test sırasında,   bu tür garantiler   aralarında minimumu hesaplamanız gereken dakika mumları içinde,   çok olacak . Kodumda, bana gelen bir fikrin sadece bir örneği.

Ve şimdi böyle bir sorunun cevabıyla ilgileniyorum.Siz de dahil olmak üzere burada bana tavsiye ettiğiniz gibi bir dosyaya keneler yazsam kodumun avantajı ne olurdu? Kodumda özellikle ne daha iyi olurdu?


Valeriy Yastremskiy bu soruya ışık tutuyor ama bana bir dosyaya kene yazmamı tavsiye eden kişinin fikrini almak isterim.
Yardım için teşekkürler

Başta beni olmak üzere yardımcı olmaya çalışanları yormamak için link vermek yerine mesajı “cebe” koyup eklemek daha doğru olur.

Şimdi bu sorun hakkında: 1 No'lu Emir açıldı… şu anda Düşük, elbette emrin açılış fiyatından daha düşük. Eh, bayrak onun elinde...

2 numaralı emir açıldı ve burada fiyatı kontrol etmek gerekecek……… Yine matematiksel fmin() fonksiyonunu kullanarak mum kapanmadan önce değişkene değeri yazıyoruz. Mum kapanır kapanmaz fiyat kontrolünü durdururuz, artık buna ihtiyacımız kalmaz. Ve ortaya çıkan değer, ikinci emrin açılmasından mumun kapanmasına kadar geçen zaman aralığındaki minimum fiyat olacaktır. Ya da ben bir şeyi yanlış anladım...