[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 514
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
Şu şekilde derlenebilir:
kodun yapısı bir şekilde "sol" olsa da ...
Peki.. Yazdım. İlk kepçeyi söyleyin. :)
Biraz uzman olarak yeniden yazdım. İşte olanlar:
Bu arada, hata:
tam olarak start işlevinde gerçekleşir, bu değişkenler tanımlanmamıştır ve bir yerde değildir. daha fazla. Yani başlamak için bir şey eklenmesi gerekiyor mu?
Bu arada, hata:
tam olarak start işlevinde gerçekleşir, bu değişkenler tanımlanmamıştır ve bir yerde değildir. daha fazla. Yani başlamak için bir şey eklenmesi gerekiyor mu?
start()'ta tanımlanmaları ve referans olarak çağrılan fonksiyona iletilmeleri gerekir.
Bu en kolay seçenektir. Ancak bir programcının makalelerini izliyorum ve başlatma işlevinde hiçbir şey bildirilmiyor.
İşte danışmanına bir bağlantı:
http://www.forextrade.ru/media/Image/MQLabs/181_ag/ChannelByMACross_Expert.mq4
Özellikle kodları yetkin bir şekilde nasıl yazdığıyla çok ilgileniyorum. Bu nedenle, her şeyi ayrı işlevler olarak nasıl yazacağımı öğrenmek ve orada değişken bildirmeden sadece başlamak için en gerekli olanı eklemek istiyorum.
Sonuçta, bir değişkeni bir fonksiyona referans olarak iletirsek, o zaman ayrı çiftiyle değil, ilettiğimiz orijinal değişkenin tamponu ile çalışırız. Yani daha önce hangi fonksiyonda bildirdiğimiz önemli değil. Değil mi?
Bu en kolay seçenektir. Ancak bir programcının makalelerini izliyorum ve başlatma işlevinde hiçbir şey bildirilmiyor.
Fonksiyonların dışında statik bir değişken tanımlayabilirsiniz ve ardından referans olarak hiçbir şey iletmeniz gerekmez.
Sonuçta, bir değişkeni bir fonksiyona referans olarak iletirsek, o zaman ayrı çiftiyle değil, ilettiğimiz orijinal değişkenin tamponu ile çalışırız. Yani daha önce hangi fonksiyonda bildirdiğimiz önemli değil. Değil mi?
Bu en kolay seçenektir. Ancak bir programcının makalelerini izliyorum ve başlatma işlevinde hiçbir şey bildirilmiyor.
İşte danışmanına bir bağlantı:
http://www.forextrade.ru/media/Image/MQLabs/181_ag/ChannelByMACross_Expert.mq4
Özellikle kodları yetkin bir şekilde nasıl yazdığıyla çok ilgileniyorum. Bu nedenle, her şeyi ayrı işlevler olarak nasıl yazacağımı öğrenmek ve orada değişken bildirmeden sadece başlamak için en gerekli olanı eklemek istiyorum.
Sonuçta, bir değişkeni bir fonksiyona referans olarak iletirsek, o zaman ayrı çiftiyle değil, ilettiğimiz orijinal değişkenin tamponu ile çalışırız. Yani daha önce hangi fonksiyonda bildirdiğimiz önemli değil. Değil mi?
O da iyi yazdı
okuman
Evet, hattı değiştir
if (!Trade(signal, priceForBuy, priceForSell))
üzerinde
if (!GetPriceToInput (signal))
Zaten Diman olduğunda, KİŞİSEL kampta ustalaşacak mısın? :-)
Gerçekten bir yıldır gerçek hayatta henüz hamur kesmedi mi? Aynı yerde, BAŞLANGIÇ miktarları size zayıf tahsis edilmemiş gibi görünüyor? :-)
yakında.
Fonksiyonların dışında statik bir değişken tanımlayabilirsiniz ve ardından referans olarak hiçbir şey iletmeniz gerekmez.
Yanlış düşün. Bir değişkeni işlev argümanı olarak iletirseniz, işlev gövdesinin bunu bildirmesi gerekmez - argümanda zaten bildirilmiştir. Geçtiği yerde bir işlev bildirmeniz gerekir.Başlangıç işlevinden veya başka bir işlevden geçmemiz önemli değil demek istedim. başka bir işlev.
Bu durumda, double GetPriceToInput(int signal) işlevinde değişkenler bildirdim ve aynı double GetPriceToInput(int signal) işlevinde bildirilen priceForSell ve priceForBuy değişkenlerini referans alarak bool Trade(int signal, double& priceForBuy, double& priceForSell) işlevine ilettim. işlev .
Bu işlevi başlat işlevine ekledim ve orada zaten tanımsız olduklarını görüyorum. Bunu nasıl düzelteceğimi anlamak istiyorum.
Tabii ki, bu 2 değişkeni dediğiniz gibi hemen başlangıçta bildirebilirsiniz, ancak bunları doğrudan double GetPriceToInput(int signal) function içinden de aktarabilirsiniz . Demek istediğim bu.
Başlangıç işlevinden veya başka bir işlevden geçmemiz önemli değil demek istedim. başka bir işlev.
Bu durumda, double GetPriceToInput(int signal) işlevinde değişkenler bildirdim ve aynı double GetPriceToInput(int signal) işlevinde bildirilen priceForSell ve priceForBuy değişkenlerini referans alarak bool Trade(int signal, double& priceForBuy, double& priceForSell) işlevine ilettim. işlev .
Bu işlevi başlat işlevine ekledim ve orada zaten tanımsız olduklarını görüyorum. Bunu nasıl düzelteceğimi anlamak istiyorum.
Bunları nereye aktardınız ve neden aktarılmadığı yerlere değerler atıyorsunuz?
Bunları nereye aktardınız ve onlara değerleri nereye atadınız?
Peki, double GetPriceToInput(int signal) işlevindeki değişkenlerin değerlerini aldım.
Burada:
double priceForSell = secondBarClosed - deltaForSell;
double priceForBuy = secondBarClosed + deltaForBuy;
Bu değerleri döndürüyorum:
return (priceForSell);
return (priceForBuy);
Onlar. Değerler zaten f-tsiya bu değişkenleri döndürdü.
Daha sonra bool Trade(int signal, double& priceForBuy, double& priceForSell) fonksiyonuna referansla bu değerleri gönderiyorum:
Burada her şey açık!