Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Merhaba mql efsaneleri. İş yerindeki öğle yemeği saatimde senin için sahte kodu hazırladım. İşte burada. Neyin eksik olduğunu bana bildirin, ben de ekleyeyim.
N&P Sözde Kodu
Bu strateji ile 1 koda sahip olmak, onu herhangi bir grafiğe ekleyebilmek istiyoruz ve 5 para biriminde çalışacak, kurallara uygunsa her birine hem kısa hem de uzun pozisyonlar girecektir.
---EURUSD---
Eğer ema7>ema14>sma50 ve PriceNow < TopFilterLevel ise (örn: eurusd için 1.3080. Bunu günlük olarak ayarlayacağım) o zaman:
EURUSD Lotları satın alın (lotlar harici değişken olabilir, örneğin 0.01). Aksi takdirde: (yani koşullar karşılanmadı) satın almayın.
ema7<ema14<sma50 ve PriceNow > BottomFilterLevel ise (örneğin: eurusd için 1.1508):
Kısa EURUSD Lotları (agian, harici değişken). Else (yani, karşılanmayan koşullar kısa devre yapmaz).
ALIŞ pozisyonu giriş noktasından 20 pip'e ulaşırsa: EURUSD üzerinde TAKEPROFIT.
KISA pozisyon giriş noktasından 20 pip'e ulaşırsa: EURUSD üzerinde TAKEPROFIT.
20 pip'e ulaşılmazsa (al veya sat), pozisyon kapanana kadar piyasada kalmaya devam edin.
manuel olarak. (ideal olarak, kodu daha kısa tutmak için bunu OrderSend işlevine koyarız).
----GBPUSD---
yukarıdakiyle tamamen aynı kod.
----USDJPY---
YUKARIDAKİNİN AYNISI
---USDCHF---
YUKARIDAKİNİN AYNISI
---AUDUSD---
YUKARIDAKİNİN AYNISI
**Kod özellikleri
Yukarıda belirtilen kriterler karşılanıyorsa, herhangi bir para birimi için hem satın alma hem de açığa alım işlemleri aynı anda gerçekleştirilebilir.
***bu kod için stoploss gerekmez
**bunun için para yönetimi kodu yok
Peki bu nasıl görünüyor?
Merhaba mql efsaneleri. İş yerindeki öğle yemeği saatimde senin için sahte kodu hazırladım. İşte burada. Neyin eksik olduğunu bana bildirin, ben de ekleyeyim.
N&P Sözde Kodu
Bu strateji ile 1 koda sahip olmak, onu herhangi bir grafiğe ekleyebilmek istiyoruz ve 5 para biriminde çalışacak, kurallara uygunsa her birine hem kısa hem de uzun pozisyonlar girecektir.
---EURUSD---
Eğer ema7>ema14>sma50 ve PriceNow < TopFilterLevel ise (örn: eurusd için 1.3080. Bunu günlük olarak ayarlayacağım) o zaman:
EURUSD Lotları satın alın (lotlar harici değişken olabilir, örneğin 0.01). Aksi takdirde: (yani koşullar karşılanmadı) satın almayın.
ema7<ema14<sma50 ve PriceNow > BottomFilterLevel ise (örneğin: eurusd için 1.1508):
Kısa EURUSD Lotları (agian, harici değişken). Else (yani, karşılanmayan koşullar kısa devre yapmaz).
ALIŞ pozisyonu giriş noktasından 20 pip'e ulaşırsa: EURUSD üzerinde TAKEPROFIT.
KISA pozisyon giriş noktasından 20 pip'e ulaşırsa: EURUSD üzerinde TAKEPROFIT.
20 pip'e ulaşılmazsa (al veya sat), pozisyon kapanana kadar piyasada kalmaya devam edin.
manuel olarak. (ideal olarak, kodu daha kısa tutmak için bunu OrderSend işlevine koyarız).
----GBPUSD---
yukarıdakiyle tamamen aynı kod.
----USDJPY---
YUKARIDAKİNİN AYNISI
---USDCHF---
YUKARIDAKİNİN AYNISI
---AUDUSD---
YUKARIDAKİNİN AYNISI
**Kod özellikleri
Yukarıda belirtilen kriterler karşılanıyorsa, herhangi bir para birimi için hem satın alma hem de açığa alım işlemleri aynı anda gerçekleştirilebilir.
***bu kod için stoploss gerekmez
**bunun için para yönetimi kodu yok
Peki bu nasıl görünüyor?
Merhaba arkadaşlar, kodlamayla ilgili temel eğitim gerçekten bu konuda kafamı toplamama yardımcı oldu (ayrıntılı kodlama kısmı eksik olsa da). Meşgul olduğumu göstermek için aşağıdaki kodu ekledim. Düşündüğüm fikir var ama yine de birçok hata veriyor. Start()'ta her şeyin büyük bir parantezin altında olduğunu göreceksiniz, bunu yapmamın nedeni, mql'nin değişken global olarak bildirilemeyeceği hatasıyla geri gelmeye devam etmesi ve hepsini 1 parantez içinde yaptığımda durmuş gibi görünüyordu. hata (birçok başka hata devam etmesine rağmen). Köşeli ayraçların hizalamasını kontrol etmek için notepad++ kullandım. Peki en azından bu konuda doğru yolda mıyım?
bu kodun en son sürümüdür. sözdizimsel olarak her şey yolunda görünüyor, ancak strateji test cihazından çalıştırdığımda hiçbir işlem yapmıyor. mantıkta bir sorun var. yardıma ihtiyacım var. Şimdi koda oldukça aşina oldum, program tarafının yapısı.Merhaba mql efsaneleri. İş yerindeki öğle yemeği saatimde senin için sahte kodu hazırladım. İşte burada. Neyin eksik olduğunu bana bildirin, ben de ekleyeyim.
N&P Sözde Kodu
Bu strateji ile 1 koda sahip olmak, onu herhangi bir grafiğe ekleyebilmek istiyoruz ve 5 para biriminde çalışacak, kurallara uygunsa her birine hem kısa hem de uzun pozisyonlar girecektir.
---EURUSD---
Eğer ema7>ema14>sma50 ve PriceNow < TopFilterLevel ise (örn: eurusd için 1.3080. Bunu günlük olarak ayarlayacağım) o zaman:
EURUSD Lotları satın alın (lotlar harici değişken olabilir, örneğin 0.01). Aksi takdirde: (yani koşullar karşılanmadı) satın almayın.
ema7<ema14<sma50 ve PriceNow > BottomFilterLevel ise (örneğin: eurusd için 1.1508):
Kısa EURUSD Lotları (agian, harici değişken). Else (yani, karşılanmayan koşullar kısa devre yapmaz).
ALIŞ pozisyonu giriş noktasından 20 pip'e ulaşırsa: EURUSD üzerinde TAKEPROFIT.
KISA pozisyon giriş noktasından 20 pip'e ulaşırsa: EURUSD üzerinde TAKEPROFIT.
20 pip'e ulaşılmazsa (al veya sat), pozisyon kapanana kadar piyasada kalmaya devam edin.
manuel olarak. (ideal olarak, kodu daha kısa tutmak için bunu OrderSend işlevine koyarız).
----GBPUSD---
yukarıdakiyle tamamen aynı kod.
----USDJPY---
YUKARIDAKİNİN AYNISI
---USDCHF---
YUKARIDAKİNİN AYNISI
---AUDUSD---
YUKARIDAKİNİN AYNISI
**Kod özellikleri
Yukarıda belirtilen kriterler karşılanıyorsa, herhangi bir para birimi için hem satın alma hem de açığa alım işlemleri aynı anda gerçekleştirilebilir.
***bu kod için stoploss gerekmez
**bunun için para yönetimi kodu yok
Peki bu nasıl görünüyor?
Merhaba Niko
Sözde kodunuz ilk deneme için oldukça iyi görünüyor.
Bununla birlikte, onu biraz daha yapılandırılmış görmek isterim ve benim için ortaya çıkardığı birkaç soru var.
Genellikle kendim kullanacağım türde bir formata kolayca ve hızlı bir şekilde koyabildim. Bakabilmeniz için buraya bir metin dosyası olarak eklenmiştir. Biçimlendirmeyi görmek için bu dosyayı kaydetmeniz ve not defterinde veya benzer bir düzenleyicide açmanız gerekir.
Bu aşamada belirli bir bilgisayar dilinde yazmadığımızı unutmayın. Biz sadece ne yapmaya çalıştığımızı açık ve net bir şekilde belirtmeye çalışıyoruz.
Sahte kodun oldukça spesifik ve "yasal" olduğunu fark edebilirsiniz. Bilgisayarlarla bu şekilde konuşmamız gerekiyor. Onlardan ne yapmalarını istediğimizi çok net bir şekilde dile getirmeliyiz. Aksi takdirde çöp üretme eğilimleri vardır.
Ayrıca, şeyleri mantıksal gruplar halinde düzenlemek için "Blokların" kullanıldığını fark edeceksiniz. Bunlar, kodu doğru şekilde yapılandırmamıza yardımcı olmak için daha sonra faydalı olabilir. Bu tartışmada daha önce birinin işaret ettiği gibi, bunu sadece eğlence için yapmıyoruz. Kodu daha okunaklı, daha anlaşılır, daha sürdürülebilir ve nihayetinde daha güvenilir ve hatasız hale getirmek için yapıyoruz. Canlı alım satım için kullanılacak olan yazılımda daha sonra son derece önemlidir, tabii ki atmak isteyeceğiniz bir sürü paranız yoksa :) . Cidden, buggy yazılımlarla uğraşmak zorunda kalmadan ticaret yapmak yeterince zordur.
Lütfen size ne gönderdiğime bir göz atın ve gerekli olduğunu düşündüğünüz değişiklikleri yapmaktan çekinmeyin. Sözde kodumda birkaç önemli nokta eksik. Onları işaret edebilir misin?
Sözde kodda gündeme getirdiğim iki soruyu da ele almak isteyebilirsiniz. Akla bir dizi başka soru geliyor ama bunlar asıl kodlama aşamasına kadar bırakılabilir.
Henüz yapmadıysanız, FXtrader2008'in bu tartışmada daha önce bahsettiği Notepad++ düzenleyicisini denemek isteyebilirsiniz. Hayatı biraz daha kolaylaştıran bulabileceğiniz tüm araçları kullanın. Lütfen gözden geçirilmiş sözde kodunuzu bir metin dosyası eki olarak bana geri gönderin. Bu HTML düzenleyicide sözde veya başka bir şekilde yapılandırılmış kod yazmaya çalışmayı biraz sıkıcı ve dağınık buluyorum.
Saygılarımızla
Tim
Merhaba Niko
Sözde kodunuz ilk deneme için oldukça iyi görünüyor.
Bununla birlikte, onu biraz daha yapılandırılmış görmek isterim ve benim için ortaya çıkardığı birkaç soru var.
Genellikle kendim kullanacağım türde bir formata kolayca ve hızlı bir şekilde koyabildim. Bakabilmeniz için buraya bir metin dosyası olarak eklenmiştir. Biçimlendirmeyi görmek için bu dosyayı kaydetmeniz ve not defterinde veya benzer bir düzenleyicide açmanız gerekir.
Bu aşamada belirli bir bilgisayar dilinde yazmadığımızı unutmayın. Biz sadece ne yapmaya çalıştığımızı açık ve net bir şekilde belirtmeye çalışıyoruz.
Sahte kodun oldukça spesifik ve "yasal" olduğunu fark edebilirsiniz. Bilgisayarlarla bu şekilde konuşmamız gerekiyor. Onlardan ne yapmalarını istediğimizi çok net bir şekilde dile getirmeliyiz. Aksi takdirde çöp üretme eğilimleri vardır.
Ayrıca, şeyleri mantıksal gruplar halinde düzenlemek için "Blokların" kullanıldığını fark edeceksiniz. Bunlar, kodu doğru şekilde yapılandırmamıza yardımcı olmak için daha sonra faydalı olabilir. Bu tartışmada daha önce birinin işaret ettiği gibi, bunu sadece eğlence için yapmıyoruz. Kodu daha okunaklı, daha anlaşılır, daha sürdürülebilir ve nihayetinde daha güvenilir ve hatasız hale getirmek için yapıyoruz. Canlı alım satım için kullanılacak olan yazılımda daha sonra son derece önemlidir, tabii ki atmak isteyeceğiniz bir sürü paranız yoksa :) . Cidden, buggy yazılımlarla uğraşmak zorunda kalmadan ticaret yapmak yeterince zordur.
Lütfen size ne gönderdiğime bir göz atın ve gerekli olduğunu düşündüğünüz değişiklikleri yapmaktan çekinmeyin. Sözde kodumda birkaç önemli nokta eksik. Onları işaret edebilir misin?
Sözde kodda gündeme getirdiğim iki soruyu da ele almak isteyebilirsiniz. Akla bir dizi başka soru geliyor ama bunlar asıl kodlama aşamasına kadar bırakılabilir.
Henüz yapmadıysanız, FXtrader2008'in bu tartışmada daha önce bahsettiği Notepad++ düzenleyicisini denemek isteyebilirsiniz. Hayatı biraz daha kolaylaştıran bulabileceğiniz tüm araçları kullanın. Lütfen gözden geçirilmiş sözde kodunuzu bir metin dosyası eki olarak bana geri gönderin. Bu HTML düzenleyicide sözde veya başka bir şekilde yapılandırılmış kod yazmaya çalışmayı biraz sıkıcı ve dağınık buluyorum.
Saygılarımızla
Tim
Merhaba TSW. Bunun için teşekkür ederim. Buna epey zaman ayırdığını görebiliyorum, bu yüzden gerçekten minnettarım. Güncellenen sözde kodu ekledim, ancak eklenmemişse, işte aşağıda. Neler kaçırdığınızı görmeye çalıştım ama tam olarak anlayamadım, birkaç şey ekledim ama bunlar sadece açıklamaydı.
Buradan nereye gidiyoruz? Bu 'uygun' kodu oluştururken, hala yukarıdaki kodun bulmacasını çözmeye çalışıyorum. Eski bir yamalı kod olduğu için sözde kodumuzu izlemiyor, ancak en azından 1 para birimi için çalışması gerektiği için hala kafam karıştı. Anahtar şey, onu bu organize olmayan gelişigüzel şekilde inşa etmek, bana gerçek kodlama öğelerini öğretmektir (parantezlerin komut dosyasını nasıl etkilediği, değişkenlerin nerede bildirileceği gibi). Bu kodun neden şimdi olduğu gibi çalışmadığına dair bir fikriniz var mı?
Merhaba arkadaşlar, kodlamayla ilgili temel eğitim gerçekten bu konuda kafamı toplamama yardımcı oldu (ayrıntılı kodlama kısmı eksik olsa da). Meşgul olduğumu göstermek için aşağıdaki kodu ekledim. Düşündüğüm fikir var ama yine de birçok hata veriyor. Start()'ta her şeyin büyük bir parantezin altında olduğunu göreceksiniz, bunu yapmamın nedeni, mql'nin değişken global olarak bildirilemeyeceği hatasıyla geri gelmeye devam etmesi ve hepsini 1 parantez içinde yaptığımda durmuş gibi görünüyordu. hata (birçok başka hata devam etmesine rağmen). Köşeli ayraçların hizalamasını kontrol etmek için notepad++ kullandım. Peki en azından bu konuda doğru yolda mıyım?
bu kodun en son sürümüdür. sözdizimsel olarak her şey yolunda görünüyor, ancak strateji test cihazından çalıştırdığımda hiçbir işlem yapmıyor. mantıkta bir sorun var. yardıma ihtiyacım var. Şimdi koda oldukça aşina oldum, program tarafının yapısı.Hey çocuklar/kızlar, nasıl doğru şekilde yapılacağını öğrenirken, yukarıdaki kod parçasıyla ilgili herhangi bir yardım (sözde kod değil, kod kodu).
Bugün bir beyin fırtınası yaptım, sanırım hata siparişleri sayan bir fonksiyon var ve bunun yerine ayrı ayrı 2 fonksiyona ihtiyacım var, biri alımları, diğeri satışları sayıyor olabilir. Aşağıdaki kodu programladım (bunun için birkaç şeyi değiştirdim), aşağıda görebilirsiniz. Ama yine de tam bir acemi olduğum için her şey berbattı. Bu konuda herhangi bir fikriniz var mı?
Hey çocuklar/kızlar, nasıl doğru şekilde yapılacağını öğrenirken, yukarıdaki kod parçasıyla ilgili herhangi bir yardım (sözde kod değil, kod kodu).
Bugün bir beyin fırtınası yaptım, sanırım hata siparişleri sayan bir fonksiyon var ve bunun yerine ayrı ayrı 2 fonksiyona ihtiyacım var, biri alımları, diğeri satışları sayıyor olabilir. Aşağıdaki kodu programladım (bunun için birkaç şeyi değiştirdim), aşağıda görebilirsiniz. Ama yine de tam bir acemi olduğum için her şey berbattı. Bu konuda herhangi bir fikriniz var mı?
Merhaba Niko
Sözde koda atıfta bulunarak
Koddan:
*** Soru ***
Hareketli ortalamalarınız için hangi zaman dilimlerini kullanmak istiyorsunuz? Dakikalar, Saatler, Günler, Haftalar, Aylar mı yoksa değişken olmaları mı gerekiyor?
***Cevap *** Mükemmel soru. Tüm hareketli ortalamalar için 5 dakikalık periyotlar olacaktır, değişken olmalarına gerek yoktur.
Ardından, yapılandırma parametreleri alanındaki sözde koda şunun gibi bir ifade eklemenizi öneririm.
"Göstergeler için 5 Dakikalık Zaman Çerçevesi Kullanın"
Dedin:
***Daha önce bu konuda net değildim, özür dilerim. Kodda böyle bir blok olmamalıdır.
Gerektiğinde işlem/terminal penceresinden manuel olarak pozisyonlardan çıkacağım
(Bunun mümkün olduğunu ve EA yürütmesini bozmayacağını varsayıyorum, doğru).
Yani aslında bu esnekliği kodlamamız gerekip gerekmediğini bilmiyorum? Ne düşünüyorsun
Daha sonra bu bloğu sözde koddan silmenizi öneririm.
EA'yı kodlamada herhangi bir sorun olmamalıdır, böylece herhangi bir şeyi karıştırmadan bir pozisyonu manuel olarak kapatmak için terminali kullanabilirsiniz.
Bu satırları eklediniz:
ELSE Bu döviz çifti için halihazırda 1 açık ALIŞ pozisyonu varsa, bu döviz çifti için ALIŞ Pozisyonu AÇMAYIN.
ELSE Bu döviz çifti için halihazırda 1 satış pozisyonu açıksa Bu döviz çifti için SATIŞ Pozisyonları açmayın
*** Soru *** Programın yapmasını İSTEMEDİĞİNİZİ önceki satırlar tam olarak belirledikten sonra neden özellikle belirtmeniz gerekiyor?
programın yapmasını istediğiniz şeyi belirttiniz. Bence sözde kod, mantığınızı dikkatlice düşünmeniz gereken yerdir. Aksi takdirde, muhtemelen
gerçek kodlamaya başladığınızda bir karmaşaya girin.
Dedin:
Not: Bir döviz çiftinde genellikle sadece 1 yön kullanacağım (örneğin: sadece kısa, örneğin 2 gün eurusd için). Bunu kodun içine nasıl yerleştirebiliriz. Benim varsayım, kodun kullanmak istemediğim bölümlerinin önüne '//' koyabileceğim (Örn: her bir döviz çifti içindeki alış veya satış emirlerinin önüne) ve sonra o kısmı kullanmam gerektiğinde bunları kaldırabileceğimdir. bir dahaki sefere kod. Bu, bu şekilde yapılandırılmış bir kodla çalışır mı?
Önerdiğiniz gibi kodu yorumlamak, gitmek için çok zarif bir yol değil. Ayrıca, kodun "UZUN" bölümüne yorum yaparsanız, çok fazla yinelenen kod üretmediğiniz sürece, tüm döviz çiftleri için uzun pozisyon açma işlevini yorumlamış olursunuz. Bu aynı zamanda çok zarif bir yol değildir ve kolayca hatalara yol açar.
Belirli bir süre boyunca uzun EURUSD, kısa GBPUSD olmak ve USDCHF ile ticaret yapmamak isteyebilirsiniz. Bu oldukça kolay bir şekilde gerçekleştirilebilir, ancak sözde kodda kendiniz nasıl tanımlayacağınızı bulmaya çalıştığınızı görmek isterim.
İşte bu konuda olası bir yol hakkında birkaç ipucu.
1. seviyelerinizin nasıl kurulduğuna ve kullanıldığına bir göz atın
2. Düzeyler ondalık sayılarla gösterilir. Git/gitme durumları için, boolean veya bayrak olarak bilinen başka bir temsil türünü kullanmak yaygın bir uygulamadır. Yapmak istediğinizi gerçekleştirmek için bayrakları kullanmak mümkün müdür?
Dedin:
** Dürüst olmak gerekirse, bilerek dışarıda bıraktığın hiçbir şeyi düşünemiyorum. Ticaret için yeterli fon olup olmadığını kontrol etmedikçe, ancak bu henüz gerekli değil.
Belki stratejinin gelecekteki sürümlerinde.
Hayır, yeterli fon olup olmadığını kontrol etmekle ilgili değil. Parti büyüklüğünün belirtilmesi dışında, özellikle para yönetimi olmadığını söylediniz. Bu çok daha temel bir şey.
Sipariş vermek için hangi bilgilere ihtiyacınız var? Sözde kodda bu öğelerin her biri nerede ve nasıl tanımlanıyor ve işleniyor?
Dedin:
Buradan nereye gidiyoruz? Bu 'uygun' kodu oluştururken, hala yukarıdaki kodun bulmacasını çözmeye çalışıyorum. Eski bir yamalı kod olduğu için sözde kodumuzu izlemiyor, ancak en azından 1 para birimi için çalışması gerektiği için hala kafam karıştı. Anahtar şey, onu bu organize olmayan gelişigüzel şekilde inşa etmek, bana gerçek kodlama öğelerini öğretmektir (parantezlerin komut dosyasını nasıl etkilediği, değişkenlerin nerede bildirileceği gibi). Bu kodun neden şimdi olduğu gibi çalışmadığına dair bir fikriniz var mı?
Hayal kırıklığını takdir ediyorum. Eski koda çok hızlı bir şekilde baktım ama açıkçası yapmaya çalıştığınız şey mantıklı değil. Bu kod parçasını yaklaşık 15 dakika içinde yeniden yazabilirim ve istediğinizi yapar, ama mesele bu değil mi? Kod yazmayı öğrenmek istediğini söyledin. Bunu kendi başınıza nasıl yapacağınızı size öğretmeye çalışıyorum.
Nico, bazı (yeni) uygun kodlar yazmaya başlamaktan çok uzakta olduğunu düşünmüyorum ama önce sözde kodda doğru bir şekilde "yapmak istediklerinin" çoğunu elde etmek önemlidir.
Yakında göreceğiniz gibi kodlamayı "çok daha kolay" hale getirecek.
iyi çalışmaya devam et
Şerefe
Tim
Merhaba Tim,
Her zaman olduğu gibi, benimle geçirdiğin zaman için gerçekten minnettarım. Devam edeceğim ve sözde kodu, yorumlarınızı yansıtacak şekilde değiştireceğim. Gerçek kod hakkında endişelenmeyin, hadi düzgün yapalım (bazen biraz sabırsızım :), çünkü öğrenme her şeyden daha güçlüdür.
Merhaba Tim,
Sözde kodu tekrar gözden geçirdim ve bu noktada acemi beynimin anlayabileceği kadar yaptım. Lütfen ekte bulun, yorumlarınızı bekliyorum!
Merhaba Tim,
Sözde kodu tekrar gözden geçirdim ve bu noktada acemi beynimin anlayabileceği kadar yaptım. Lütfen ekte bulun, yorumlarınızı bekliyorum!
merhaba Nick
Hepsi bu kadar iyi görünüyor.
En son sahte kodunuzu inceledim ve bazı soruları vb. yanıtladım.
Sanırım kodlamaya başlamak için hazırız.
Çok kaba bir kural olarak, programlama süresinin 1/3'ünün spesifikasyona, 1/3'ünün kodlamaya ve 1/3'ünün hata ayıklama ve test etmeye harcanması gerektiğini söylüyorlar.
Yani diyebiliriz ki, bu küçük projede kabaca yolun 1/3'üne geldik!
Şimdi MT4 dili hakkında konuşalım.
Tüm bilgisayar dillerinin, bilgisayarın ne yapmasını istediğinizi anlayabilmesi için, dilin yazılması gereken belirli yolları (bir biçim) vardır. Bu ve diğer dile özgü bilgileri belgelerden öğrenebilirsiniz. MT4 ia için belgeler bu forumda çevrimiçi olarak mevcuttur. Henüz yapmadıysanız, belgelerde bulunan bilgi türlerine bir göz atmak için biraz zaman ayırmanızı öneririm. Ardından, belirli bir konu veya işlev hakkında bilgiye ihtiyacınız olduğunda, onu nerede arayacağınızı bileceksiniz.
Hayatı biraz daha kolaylaştırmak için, MT4 dahil birçok modern bilgisayar dili, sizin için temel bir program düzeni oluşturan şablonlar kullanır. Bu şablon programlara genellikle "sihirbazlar" denir. EA sihirbazını, üzerinde yeşil çarpı işareti bulunan MetatEditor'daki "Yeni" menü öğesinin altında bulacaksınız.
Bunu açarsanız, "Uzman Danışman" için bir şablon bulacaksınız. Bunu seçin ve sizden bir EA adı, yazar ayrıntıları vb. ve parametreler istenecektir. Parametreler daha sonra eklenebilir veya değiştirilebilir ancak bu aşamada parametreleri yapılandırma bloğundan girmek isteyebilirsiniz.
Her parametreye bir ad, bir tür ve bir başlangıç değeri vermeniz istenecektir.
Parametre adları her zaman ne olduklarını açıklayıcı olmalıdır
örneğin EURUSD_TopFilterLevel anlamlı bir isimdir ex1 DEĞİLDİR. Anlamlı veri adlarının kullanılması, programın hata ayıklamasını veya daha sonra değiştirilmesini çok daha kolay hale getirir. MT4'te veri adlarının büyük/küçük harfe duyarlı olduğunu unutmayın. LOTSize, LotSize ile aynı değildir. Veri adları konusunda dikkatli ve tutarlı olmanız gerekir.
Ayrıca her parametre için bir veri tipi (tipi) belirtmeniz istenecektir. MT4, Tam Sayı (int), Ondalık Sayı (double), Metin (dize) ve Doğru / Yanlış veya Bayrak (bool) olmak üzere yalnızca 4 veri türünü kullanır.
Yine veri türleri konusunda dikkatli olmamız ve bunları bilmeden karıştırmamamız gerekiyor, aksi halde ince hatalara neden olabiliriz.
Şablonunuzu sihirbazla oluşturduktan sonra, programınızı "yapılandırmaya" başlamanızı öneririm. MT4'teki temel yapı birimi FONKSİYON'dur.
Burada yazıldığı gibi, aslında hiçbir şey yapmayan en basit temel işlev -
Metatrader sihirbazı tarafından oluşturulan şablonun içinde zaten üç boş fonksiyon var.
Başlatma işlevi, EA'yı bir grafiğe sürükleyip Uzman danışman düğmesini AÇIK düğmesini tıklattığınızda her başlatıldığında çağrılır.
Deinit işlevi, bir grafiğin dışına sürüklediğinizde veya Uzman danışman düğmesini KAPALI'ya tıkladığınızda EA her durduğunda çağrılır.
Başlatma işlevi, eklendiği çizelge tarafından alınan HER YENİ TICK'ta çağrılır. Bu, pazarın ne kadar meşgul olduğuna bağlı olarak dakikada birkaç kez veya daha fazla çağrılabileceği anlamına gelir. İşimizin çoğunu buradan yapacağız.
Şimdilik, ana bloktaki tüm sözde kodu başlatma işlevine koymanızı ve ardından sözde kodu her satırda // ile yorumlamanızı öneririm.
Ardından giriş kuralları bloğu için kendinize ait yeni bir işlev oluşturun ve sözde kodu aynı şekilde yorumlayın.
init ve deint fonksiyonlarını şimdilik olduğu gibi boş bırakın.
Bu kodu hatasız bir şekilde derleyebilmelisiniz ama elbette bu aşamada hiçbir şey yapmayacaktır.
İyi çalışmaya devam edin!
Saygılarımızla
Tim
(Not: Gerekirse skype üzerinden konuşabiliriz ama şimdilik forumla nasıl gittiğimizi görelim)
Merhaba Tim,
Her zaman olduğu gibi yardımınız ve zamanınız çok değerli! Teşekkür olarak, kodlama işlemini bitirdikten sonra size çok güzel bir şişe şampanya göndermenizi istiyorum.
Evet, mql kitabını birkaç kez inceledim, zorluk teoriyi uygulamaya koymaktı. Ayrıca, iki şeyin nasıl kodlandığını ve bir araya getirildiğini görmek, onları denemek ve anlamak için bu web sitesinde yayınlanan yaklaşık 10 EA'nın çıktısını aldım. Ve MT4'te simülatör tüccarında çok zaman harcıyorum (yani, mevcut EA'ları geriye dönük test etme ve öğrenme).
Kodlama sürecini başlatacağım ve ikimizin de neler olduğunu görmemize yardımcı olmak için blokları çok net ve ayrı yapacağım. Ve forum aracılığıyla size gönderin.
1 Soru: Aracı kurumların agresif pipingi durdurmak için bir şeyler koyduğunu söylediniz. 1. Agresif pipingi ne tanımlarsınız? 2. Hangi şeyleri yerine koyuyorlar?
1 dakikalık zaman dilimlerinde (bir elektronik bahis yöntemiyle) eurusd'u manuel olarak kafa derisine alırdım, aracı kurum devreye girene ve yürütme için gecikmeler (giriş ve çıkış) koymaya başlayana kadar bu gerçekten iyi gidiyordu. Bu nedenle, şimdi bu aracı kurumla bunu yapmanın hiçbir anlamı yok, yasa dışı olsa bile, gecikmeler olmaya devam edecek ve tüm günü mahvedecek (tipik olarak sadece 1 saat kafa derisi yüzerseniz, 2 gecikme yaşarsanız ve değerli zamanınızı kaybederseniz). Agresif bir mahkeme eylemi tehdidinden sonra gecikmiş işlemler için tüm parayı geri aldım.
2 Soru: Farklı brokerler kullanıyor musunuz? Hangi brokerleri önerirsiniz? (burada isim belirtmenize izin veriliyorsa)
Teşekkürler,
Nick