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

 
neverness :

Biz çocuk değiliz, oldukça aklı başında bireyleriz.

Birbirimizi karalamaya ve aldatmaya çalışmayalım.

Sorumu tekrar ediyorum:

Lütfen bazı komut dosyası nesnelerinin oluşturulduğu en basit gösterge kodunu sağlayın (OnStart(), örneğin bir elips).

Yani, prosedür aşağıdaki gibidir:

MetaEditor'a gidin. Dosya->Oluştur...'a tıklayın.

Bir gösterge seçin.

Ve bu ortamda, komut dosyası nesnesinin kodunu girersiniz (OnStart (), örneğin bir elips).

Çok basit!!!

İyi şanlar!!!

Göstergede gerekli tüm işlevler açıklanabiliyorsa, komut dosyasını neden göstergeden çağırmanız gerekiyor?
 
Vitaly Gorbunov :
Göstergede gerekli tüm işlevler açıklanabiliyorsa, komut dosyasını neden göstergeden çağırmanız gerekiyor?

Bu, herhangi bir programlama ortamındaki en basit prosedürdür. C++'da bu hiç sorun değil.

Veri akışına göre bir grafik nesne oluşturuyoruz. Nesnenin konumu, şekli ve diğer özellikleri bu akışın değerlerine bağlıdır.

Gösterge, MQL ortamındaki girdi veri akışından sorumlu olduğu için bizi ilgilendiren nesneleri bu ortamda inşa ediyoruz.

Her şey mantıklı.

Yalnızca MQL bu nesnelerin oluşturulmasına izin vermez.

Ve bu, C ++ ve Basic'te ve JavaScript'te ve diğer herhangi bir programlama ortamında bununla ilgili herhangi bir sorun olmamasına rağmen.

Ne tür bir "gerekli işlevsellik" tanımlayacağınız benim için bir muamma.

Ve genel olarak konuşursak.

Programcılar genellikle KOD DİLİ konuşur.

Böyle bir fırsat varsa - bir KOD ÖRNEĞİ verin !!!

Bu mümkün değilse, benimle aynı fikirde olmaktan başka seçeneğiniz yok.

Her şey basit!

 

То есть, требуется не просто бросить объект на форму, или создать независимый ни  от чего объект, как в Вашем примере, а внедрить этот объект в вычислительную среду индикатора .

Başka bir deyişle, gösterge veri akışı değiştikçe grafik nesnesi de değişir.

Ve örneğinizdeki gibi değil, sadece grafikte hiçbir şeye bağlı olmayan bir boşluk.


Ve sorun nedir, gösterge bu nesneyle nasıl çalışacağını biliyorsa, bu nesneyle çalışacaktır. Sorunu özellikle tanımlayabilir misiniz? Ve sonra boşlukta küresel bir atı tartışıyoruz.

 
neverness :

Bu, herhangi bir programlama ortamındaki en basit prosedürdür. C++'da bu hiç sorun değil.

Veri akışına göre bir grafik nesne oluşturuyoruz. Nesnenin konumu, şekli ve diğer özellikleri bu akışın değerlerine bağlıdır.

Gösterge, MQL ortamındaki girdi veri akışından sorumlu olduğu için bizi ilgilendiren nesneleri bu ortamda inşa ediyoruz.

Her şey mantıklı.

Yalnızca MQL bu nesnelerin oluşturulmasına izin vermez.

Ve bu, C ++ ve Basic'te ve JavaScript'te ve diğer herhangi bir programlama ortamında bununla ilgili herhangi bir sorun olmamasına rağmen.

Ne tür bir "gerekli işlevsellik" tanımlayacağınız benim için bir muamma.

Ve genel olarak konuşursak.

Programcılar genellikle KOD DİLİ konuşur.

Böyle bir fırsat varsa - bir KOD ÖRNEĞİ verin !!!

Bu mümkün değilse, benimle aynı fikirde olmaktan başka seçeneğiniz yok.

Her şey basit!

Dil kullanımındaki beceri eksikliği, hakaret için bir neden değildir.

Kod tabanında dolu, her zevke ve renge göre farklı kodlar.

MQL5 Code Base
MQL5 Code Base
  • www.mql5.com
Две одинаковые торговые системы (для лонгов и шортов), построенные на сигналах индикатора ColorSchaffJJRSXTrendCycle, которые можно настраивать различным образом в одном эксперте с возможностью менять размер предстоящей сделки в зависимости от результатов предыдущих сделок для данной торговой системы.
 

Строим графический объект по потоку данных. Положение объекта, его форма и другие характеристики зависят от значений этого потока.

Gösterge, MQL ortamındaki girdi veri akışından sorumlu olduğu için bizi ilgilendiren nesneleri bu ortamda inşa ediyoruz.

Her şey mantıklı.

Yalnızca MQL bu nesnelerin oluşturulmasına izin vermez.


Göstergede hangi nesne oluşturulamaz?

 
Vitaly Gorbunov :

Ve sorun nedir, gösterge bu nesneyle nasıl çalışacağını biliyorsa, bu nesneyle çalışacaktır. Sorunu özellikle tanımlayabilir misiniz? Ve sonra boşlukta küresel bir atı tartışıyoruz.

Her şey basit.

Gösterge olayını alıyoruz

int OnCalculate(const int oranları_toplam,
const int önceki_hesaplanmış,
const tarihsaat &saat[],
const double &aç[],
const çift &yüksek[],
const çift &düşük[],
const double &kapat[],
const uzun &tick_volume[],
const uzun &hacim[],
const int &spread[])

ve örneğin, bir açık [] değer akışı alıyoruz ve bu akıştaki değer belirtilen değerden büyükse, o zaman grafiğin belirli bir hesaplanmış noktasında bir grafik komut dosyası nesnesi oluşturuyoruz ve hesaplanmış özellikler.

Her şey basit basit.

Yani, OnCalculate() değişken veri alanına OnStart() komut dosyası nesnesini uygulamamız ve ilgilendiğimiz nesneyi hesaplanan değerlerle oluşturmamız gerekiyor.

Temel basit.

MQL'de nasıl yapılır???

 
Vitaly Muzichenko :

Dil kullanımındaki beceri eksikliği hakaret nedeni değildir.

Kod tabanında dolu, her zevke ve renge göre farklı kodlar.

Yetersizlik birlikte yazılır -> https://en.wiktionary.org/wiki/inability

MQL'nin "matematik kabuğu" hakkında kasıtlı olarak sessiz kaldığımı daha önce söylemiştim.

Bu aynı zamanda "kod tabanında tam" olan ve herhangi bir "tat ve renk" için olan çok "farklı kodlar" için de geçerlidir.

Öyleyse, sevgili Vitaly!

Bana yöneltilen bu tür ifadeleri kendim hakaret olarak algılıyorum.

Ve cevabın bir kısmını alacak kadar kibar olun.

Böyle.

Haklı olarak belirttiğiniz gibi, kod tabanında %1000 kazanç sağlayan her türlü "harika kod" gerçekten fazlasıyla yeterli.

Ancak bütün sorun, bu kodların yazarlarının bize sunduğu bilgilerin ne kadar doğru olduğudur.

Ve "kazan-kazan" Uzman Danışmanlar oluşturma görevini matematiksel olarak titizlikle formüle edersek, bu görev şöyle bir şey gibi görünecektir:

Görev Formülasyonu:

Bu Uzman Danışman tarafından seçilen herhangi bir durumda kazan-kazan sonucu verecek bir Uzman Danışman oluşturmak mümkün müdür?

Sorunun çözümü.

Böyle.

Bu sorunun tamamen matematiksel çözümüne gelince, herhangi bir Uzman Danışman için böyle bir kombinasyonu belirtebileceğiniz ortaya çıktı.

Bu danışmanın açıkça kaybedeceği ve tüccarın fonlarını açıkça kaybedeceği tekliflerin akış değerleri.

Elbette burada bu soruna salt matematiksel bir çözüm vermeyeceğim ama bunun doğru olduğundan emin olabilirsiniz.

Yani, matematiksel bir bakış açısıyla, herhangi bir danışman için, bu danışmanın eylemlerinin tüccar için kârsız olacağı bu veya bu tür durumları belirtebilirsiniz.


Ve şimdi bu konuya yasal bir bakış açısıyla yaklaşırsak, herhangi bir danışmanın satışına yönelik tüm teklifler başka bir "dolandırıcılık planından" başka bir şey değildir,

çünkü danışmanlardan hiçbiri bir "kazan-kazan" seçeneği sunamıyor.


Bu nedenle, sevgili Vitaliy, hiçbir "dili kullanma yeteneği" ve "kod kullanma" yeteneğinin olmaması, tüccarı kayıplardan korur.

Ve dahası, bu bir hakaret olamaz.

Bu yüzden bir dahaki sefere ifadelerinizi daha dikkatli seçin.

 
Vitaly Gorbunov :

Göstergede hangi nesne oluşturulamaz?

Bir tane inşa et.

Şahsen, ufukta inşa edilebilecek bu tür nesneleri görmüyorum.

En azından bir şey görmek istiyorum.

Ben hala MQL'de "acemiyim". Belki bilmediğim veya gözden kaçırdığım bir şey vardır.

 
neverness :

Her şey basit.

Gösterge olayını alıyoruz

int OnCalculate(const int oranları_toplam,
const int önceki_hesaplanmış,
const tarihsaat &saat[],
const double &aç[],
const çift &yüksek[],
const çift &düşük[],
const double &kapat[],
const uzun &tick_volume[],
const uzun &hacim[],
const int &spread[])

ve örneğin, bir açık [] değer akışı alıyoruz ve bu akıştaki değer belirtilen değerden büyükse, o zaman grafiğin belirli bir hesaplanmış noktasında bir grafik komut dosyası nesnesi oluşturuyoruz ve hesaplanmış özellikler.

Her şey basit basit.

Yani, OnCalculate() değişken veri alanına OnStart() komut dosyası nesnesini uygulamamız ve ilgilendiğimiz nesneyi hesaplanan değerlerle oluşturmamız gerekiyor.

Temel basit.

MQL'de nasıl yapılır???

Peki, bu nesneyi inşa et ve sonra kontrol et.Bu kadar zor olan ne?

Bunu şu şekilde yapalım - basit bir görevi tanımlayın ve Pazartesi günü onu uygulamaya çalışacağım.

 
Vitaly Gorbunov :

Peki, bu nesneyi inşa et ve sonra kontrol et.Bu kadar zor olan ne?

Bunu şu şekilde yapalım - basit bir görevi tanımlayın ve Pazartesi günü onu uygulamaya çalışacağım.

En basit görevi zaten tanımladım.

MetaEditor'u açın.

Dosya->Oluştur düğmesini tıklayın.

Açılır alanda Gösterge'yi seçin.

Ve OnCalculate() gösterge alanında, herhangi bir script nesnesini OnStart() olayıyla gömdük.

Şahsen, nasıl yapacağımı bilmiyorum. Peki, örneğin şöyle:

int OnCalculate(const int oranları_toplam,
const int önceki_hesaplanmış,
const tarihsaat &saat[],
const double &aç[],
const çift &yüksek[],
const çift &düşük[],
const double &kapat[],
const uzun &tick_volume[],
const uzun &hacim[],
const int &spread[])
{
//---
for(int i = 1; ben < 100;i++)

{

if(open[i] > Maks)

{

OnStart()

Ve burada, ilgilendiğimiz nesneyi oluşturmak için bir senaryo yazıyoruz. Örneğin, bir elips veya bir grafikteki harfler veya başka bir şey

} //eğer(aç)

} //for(int i)
//--- sonraki çağrı için prev_hesaplananın dönüş değeri
dönüş(oranlar_toplam);
} // Hesapla

Bunun gibi bir şey, muhtemelen, böyle görünmelidir.

Ancak MQL tercümanı böyle bir kodu hiçbir şekilde algılamaz.

Neden: