MQL4'te programlama üzerine çevrimiçi kitabın beta sürümü - Sergey Kovalev (SK.) - sayfa 9

 
Climber :
Taki, SK tarafından hazırlanan karmaşık sipariş muhasebesi hakkında harika bir makale buldu 'Büyük bir programda sipariş muhasebesi'
Dürüst olmak gerekirse, tüm bu olayı düşündüm, bu bir cazibe değil mi???
Bu bir cazibe değil, ama dünyaya açık gözlerle bakmanız gerekiyor. Daha fazla netlik için Korey'nin bu sayfadan başlayan gönderilerini okuyun. Ve başka bir makaleye bakın İlk "kase" .
 
Daha önce kase hakkında okudum :)
Ama kâseyle ilgili makalede anlatılan karakterin aksine ben onun gibi düşünmüyorum: "Sadece ben!". Bence yanlış bir şey var ya da şimdi sadece şanslı. Şampiyonanın sonuçlarına bakmanıza rağmen, üç ayda çok daha iyi bir sonuç görebilirsiniz, bu da temelde hiçbir şeyin imkansız olmadığı anlamına gelir. Yine de, gerçek hayatta bu kadar "hızlı" gelişmesine kim izin verecek?
 
Climber :
Yine de, gerçek hayatta bu kadar "hızlı" gelişmesine kim izin verecek?

Bu basit bir soru. Ve bunun cevabı açıktır: dürüst çalışan (brokerlar burada tartışılmaz).

Daha zor bir soru, EA'nın gerçekten istikrarlı, yüksek sonuçlar verip vermediğidir. Yoksa tarihe mi uygun yoksa bir kaza mı?

 
SK. писал (а):
Daha zor bir soru, danışmanın gerçekten istikrarlı olup olmadığıdır,
yüksek puanlar? Yoksa tarihe mi uygun yoksa bir kaza mı?
Yani henüz bir danışman yok, olsaydı çok şey netleşirdi diye düşünüyorum. Ben de rastgeleliğe eğilimliyim. Bu, şimdilik demoda manuel olarak benim.

Daha önce çok daha mütevazı sonuçlar almıştım. Ve genel olarak, kitabınızı (neredeyse bir ay) ve bir bütün olarak tüm dili incelediğim süre boyunca, Forex ile tanıştığım 2 yıl boyunca bilmediğim ve şüphelenmediğim ticaret hakkında çok şey öğrendim. . Şimdi bile, en azından daha önce nasıl kazanabileceğimi düşünüyorum, çok fazla bilmeden)) Sadece bir demoda ticaret yapmaya ilk başladığımda, kazanmanın mümkün olduğuna dair güçlü bir izlenim edindim, ancak daha fazla değil. Ayda 300 dolar. Prensip olarak da fena değil, kimseye borçlu olmadığın için, istediğin zaman ve istediğin gibi çalışırsın, özellikle her türlü patrona alerjim göz önüne alındığında :)

Kitabın ilk okumasından sonraki bir hafta içinde ilk danışmanı yazdım. Ama ben yazmadım, bunun yerine kopyaladım, sadece ticaret kriterini içeren bloğu değiştirdim ve gerisini MA kullanan bir danışman örneğinden aldım. Ama yazdığımda, sadece ne yapacağımı bulmayı umuyordum. Onlar. uzun ve sıkıcı bir süre için manuel olarak kontrol etmemek için test cihazının yeteneklerini kullanın. Kase ile ilgili makaledeki gibi düşünceler, bir izim bile yoktu. Bu bağlamda, daha sıradanım :) Buna göre, sonuçtan memnun kaldım, depozitonun tamamen boşalmasını gördüm (bir seçeneğin daha az olduğu gerçeğinden memnunum). Bu fikri küçük düşürmek basitti, bu yüzden kontrol etmemek günahtı. Ancak son strateji (benim için) MQL4 kullanarak tanımlama açısından daha karmaşık, bu yüzden şimdilik ister istemez kalemlerle çalışmak zorundayım. Ancak manuel moddaki sonuçları, yalnızca bir Uzman Danışmanın daha fazla yazılmasını gerektirir. Yani yavaş yavaş deniyorum ama yazıyorum.
 
Climber :
..Az önce çok daha mütevazı sonuçlar aldım. Ve genel olarak, kitabınızı (neredeyse bir ay) ve bir bütün olarak tüm dili incelediğim süre boyunca, Forex ile tanıştığım 2 yıl boyunca bilmediğim ve şüphelenmediğim ticaret hakkında çok şey öğrendim. . Şimdi bile daha önce nasıl bu kadar çok şey yapabildiğimi düşünüyorum, en azından bir şeyler kazanın))).
..Ama son strateji (benim için) MQL4 araçlarını kullanarak açıklamak açısından daha karmaşık, bu yüzden şimdilik ister istemez kalemlerle çalışmak zorundayım. Ancak manuel moddaki sonuçları, yalnızca bir Uzman Danışmanın daha fazla yazılmasını gerektirir. Yani yavaş yavaş deniyorum ama yazıyorum.
Benim düşünceme göre, sürdürülebilir karlı bir strateji oluşturmanın işgücü maliyetleri, bir dil öğrenmenin işgücü maliyetlerinden yaklaşık iki kat (100 kat) daha fazladır. Özünde, programlama yalnızca teknik bir araçtır, büyük ölçüde öngörülebilir ve bu nedenle stratejiyi yaratanın iradesine tabidir. Ancak adil olmak gerekirse, bir tüccarın programlamanın ayrıntılarını inceleyerek tüm piyasa-ticaret-strateji olgusuna daha net bir bakışla bakmaya başladığı da söylenmelidir. Ve tecrübe biriktirildikçe, hatalı düşünceler elenir ve umut verici olanlar belirlenir. Bu anlamda, programlama pratiğini abartmak zordur. Bu nedenle, geliştiriciler otomatik ticarete bahis yapmaya karar verdiklerinde yüzlerce kez haklıydılar.
 

SK'ye

değişkenler, .

Aşağıdakileri yazdınız:

" Tüm diziler varsayılan olarak statiktir, yani başlatma sırasında açıkça belirtilmemiş olsa bile statik gibi görünürler "

Yine de

Diyelim ki bir gösterge, çağıran alt programda bir dizi kayıtlı:

1)

çift toplam[]; //standart işlevi çağırır .................................. ........ . . .

i= DiziMinimum (toplam,iter,0); // İkinci çağrıda hata: <ArrayMinimum işlevi için hatalı başlangıç konumu 0>

2) hata seçeneği

statik çift toplam[];

//................................................................

i=DiziMinimum(toplam,iter,0); // İkinci çağrıda aynı hata: <ArrayMinimum işlevi için hatalı başlangıç konumu 0>

3) hatasız seçenek

çift toplam[1000];

................................................................

i=DiziMinimum(toplam,iter,0); // Normal yürütme

4) hatasız seçenek

statik çift toplam[1000];

................................................................

i=DiziMinimum(toplam,iter,0); // Normal yürütme



Örnek 1 ve 2'den dizilerin dinamik olarak tahsis edildiği anlaşılmaktadır.

Örnek 2'den, boyutu olmayan bir dizinin statik olarak başlatılmadığı (ki bu aşikardır), ancak bu derleme hatalarında görünmüyor (((

Örnek 3 4'ten, statik ayırmanın yalnızca önceden tanımlanmış dizilerde doğal olduğu sonucu çıkar.

İlginç bir şekilde, çalışma zamanı sistemi Hatayı yakalar ve iyi tasarlanmış bir gerçek zamanlı terminal sistemini gösteren örnek 1 ve 2'den belirler. Onlar. dizi bir nesne gibi davranır. Geliştiricilere saygılar.

Ancak, basit değişkenlerle her şey o kadar düzgün değildir.

double instik(int &t) // bu fonksiyon çağıran programdaki bir değişkeni değiştirir

{

t++;

}

Bu çağrı, aşağıdaki durumlarda her onay için sayılır:

//................................................

statik int tik;


instik(tik);

print("tik=",tik);

//................................

Ve bu sayılmaz, çünkü bellek tahsisi dinamiktir ve ikinci çağrıdaki bağlantılı adres eşleşmez.

................

int tik;


instik(tik);

print("tik=",tik);

// instik alt yordamı bilinmeyen baytı artırır, ancak terminal çökmez!!!! Bir kez daha, geliştiricilere tebrikler.

 
SK. писал (а):

Ama adalet
bunun uğruna, programlamanın ayrıntılarına girmenin de söylenmesi gerekir.
tüccar tüm fenomen piyasa-ticaret-stratejisine bakmaya başlar
daha net bir görünüm. Ve deneyim biriktikçe, ortadan kaldırılırlar.
hatalı düşünceler ve umut vaat eden yönler belirlenir.
%100 katılıyorum. İlk başta şaşırdım bile, programlama öğrenmeye çalışıyor gibiyim ama ticaret hakkında daha önce bildiğimden daha fazlasını öğrendim. Bu yüzden deneyim kazanmaya devam edeceğim :)
 
Korey :

SK'ye

Değişkenler, statik değişkenler.

...


Her tıklamada özel işlevlerin yeniden başlatıldığı gerçeğini gözden kaçırıyorsunuz gibi görünüyor. Bu durumda statik değişkenler değerlerini korur ve başlatılmaz, statik olmayan değişkenler ise koda uygun olarak başlatılır. Kodunuzda, tik tamsayı değişkeni varsayılan olarak sıfır olarak başlatılır.

 //----------------------------------------------------------------------------------
int start ()
   {
   int tik ;                // Инициализация нолём на каждом тике
   instik ( tik ) ;            // Вызов функции, передача параметра по ссылке
   Alert ( " tick= " , tik ) ;   // Всё время выводит 1, как и ожидается
   return ;
   }
//----------------------------------------------------------------------------------
double instik ( int & t )      // Функция изменяет переменную в вызывающей программе
   {                       // При каждом обращении заходит 0
   t ++;                    // Увеличение значения на 1, как и заказано, т.е.
   }                       // ..при каждом исполнении уходит 1
//----------------------------------------------------------------------------------

instik() işlevinde her şey istendiği gibi gerçekleşir. start()'ta, Alert() zamanında, tik değişkeninin değeri 1'dir ve Alert()'in çıktısı budur.

Ama bu gerçeğin tamamı değil. Tik değişkeni statik olarak bildirilmediğinden değeri kaydedilmez. Onlar. yürütme özelliği için bir sonraki çağrıda. start() işlevinde, tik değişkeni yeniden sıfır olarak başlatılacaktır. Ve her şey yeniden başlar. Bu nedenle, Alert güvenli bir şekilde birer birer çıktı verir.

 
Sergey Kovalev'i tebrik ediyoruz!

MQL4 dil eğitiminin yayınlanması 1 Şubat'ta planlanıyor ve MQL4.community web sitesine zaten entegre edilmiş durumda. İngilizce'ye çeviri tüm hızıyla devam ediyor.
 
Sergey!
Danışmanda bir siparişi kapatma olasılığı nasıl uygulanır - sayaç? Kılavuzda bulamadım...