[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 60
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
burada referansa göre parametreler geçiyor, şöyle bir komut dosyası yapın:
uzmanlar sekmesinde bir giriş görünecek: 2012.04.08 11:19:35 EURUSD testi,M5: func = 100, res = 10
peki neden res = 999 atadığımız sorusunu yanıtlamaya çalışın; ve günlükte res = 10 var
Kütüphaneleri nasıl dahil edeceğimi söyler misin? Mqh dosyalarında bulunurlar, ancak derlerken verir
'strlib.mqh' - program dosyasını açamıyor
burada referansa göre parametreler geçiyor, şöyle bir komut dosyası yapın:
uzmanlar sekmesinde bir giriş görünecek: 2012.04.08 11:19:35 EURUSD testi,M5: func = 100, res = 10
peki neden res = 999 atadığımız sorusunu cevaplamaya çalışın; ve günlükte res = 10 var
Valla benim açıklamam şu:
Yazdır işlevinde, kullanıcı tanımlı işlev işlevine bir çağrı yapılır. res=999 parametresi func işlevine iletilir. func fonksiyonunun kendisi hesaplanırken, a=10 parametresi kullanılır. Ve a*10=100 değeri işlev çağrısına geri gönderilir. Çünkü sonunda res=10 değerine sahibiz, sonra buradan bir parametreyi referans yoluyla geçirmenin aşağıdaki anlama geldiği sonucuna varıyorum: çağrılan fonksiyona (bu durumda res=999) karşılık gelen türden HERHANGİ bir değeri iletebilirsiniz. case, func), ancak fonksiyonun kendisi, fonksiyonun kendi içinde başlatılacak olan (bu, belirli bir durumda, geçen değerle çakışabilir) bu değerle (yani, bu durumda, a=10) hesaplanacaktır. çağrılan işleve, yani bu durumda func'ta). Ve fonksiyonda (bu durumda, func'ta) hesaplanan değeri fonksiyon çağrı dizgisine geri ilettiğinizde, değişken (bu durumda, res) zaten öncekinden farklı bir değere sahip olacaktır, yani. func işlevini değerlendirirken elde ettiği şey (yani, bu durumda res=10). Toplam: hesaplanan fonksiyonun içinde referans yoluyla bir fonksiyona parametre iletirken, parametre değeri değişebilir ve daha sonra, hesaplanan değer fonksiyon çağrısı dizgisine döndürüldükten sonra, bu parametrede zaten DEĞİŞTİRİLMİŞ olacaktır (belirli bir durumda, aynı) çağrılan işlevin değerlendirmesini aldığı değer.
doğru mu anladım
Evet kesinlikle
Harika danke schön!!!
Lütfen söyleyin, siparişte bir değişiklik yapmak istiyorum, böylece danışman belirttiğim zamanda stop loss değerini değiştirir ve o da dalga geçmeye başlar.
işte kodum
harici int tp = 350; // kar değerini al
harici int sl = 400; // kayıp değerini durdur
int bileti;
int başlangıç()
{
//----
if (OrdersTotal()==0 && Hour( )==2 && Minute( )==0) // emir terminal saatiyle 14:00'de açılır
bilet=OrderSend(Symbol(),OP_SELL,1,Bid,0,Ask+sl*Point,Ask-tp*Point,"",123,0,Red);
//----
if (OrdersTotal()==1 && Hour( )==3 && Minute( )==0) // burada seçilen biletle sipariş değişikliğinin saat 3:00'te yapılması koşulunu belirledim terminal. zaman.
{
OrderSelect(bilet, SELECT_BY_TICKET, MODE_TRADES); // belirtilen sipariş seçimi, burada anlaşmalar
OrderModify(ticket, OrderOpenPrice(), Ask+300*Puan, OrderTakeProfit(),0,Mavi); // açık pozisyon fiyatından seçilen bilet ile emri değiştirin, SL değerini puan olarak değiştirin, TP'yi değiştirmeden bırakın
}
//--
}
Test yaparken bir Sorun çıkar: Expert Advisor 3 saat 00 dakikadan 3 59 dakikaya kadar olan süre içinde birçok gereksiz değişiklik yapmaya başlar.Danışman her saniye aptalca bir değişiklik yapar! NİYE YA? kodda yanlış olan ne?
Lütfen söyleyin, siparişte bir değişiklik yapmak istiyorum, böylece danışman belirttiğim zamanda stop loss değerini değiştirir ve o da dalga geçmeye başlar.
işte kodum
harici int tp = 350; // kar değerini al
harici int sl = 400; // kayıp değerini durdur
int bileti;
int başlangıç()
{
//----
if (OrdersTotal()==0 && Hour( )==2 && Minute( )==0) // emir terminal saatiyle 14:00'de açılır
bilet=OrderSend(Symbol(),OP_SELL,1,Bid,0,Ask+sl*Point,Ask-tp*Point,"",123,0,Red);
//----
if (OrdersTotal()==1 && Hour( )==3 && Minute( )==0) // burada seçilen biletle sipariş değişikliğinin saat 3:00'te yapılması koşulunu belirledim terminal. zaman.
{
OrderSelect(bilet, SELECT_BY_TICKET, MODE_TRADES); // belirtilen sipariş seçimi, burada anlaşmalar
OrderModify(ticket, OrderOpenPrice(), Ask+300*Puan, OrderTakeProfit(),0,Mavi); // açık pozisyonun fiyatından seçilen biletle emri değiştirin, SL değerini puan olarak değiştirin, TP'yi değiştirmeden bırakın
}
//--
}
Test yaparken bir Sorun çıkar: Expert Advisor 3 saat 00 dakikadan 3 59 dakikaya kadar olan süre içinde birçok gereksiz değişiklik yapmaya başlar.Danışman her saniye aptalca bir değişiklik yapar! NİYE YA? kodda yanlış olan ne?
Neden zamanla.....karla!!
Aynı anda stop ve kar koyamayacağınız, ancak değişiklik yoluyla yapmanız gereken bir ECN hesabında açık bir emri değiştirmek için doğru fonksiyon nasıl yazılır.
Genel olarak, sorun şu ki, bir şeyler yanlış, hatayı bulmama yardım et.
harici int tp = 350; // kar değerini al
harici int sl = 400; // kayıp değerini durdur
int bileti;
int başlangıç()
{
//----
if (OrdersTotal()==0 && Close [1]< Open [1] && High [ 1 ]< Bid ) )==0) // şartlara göre sipariş açılır
bilet=SiparişGönder(Symbol(),OP_SELL,1,Teklif,0,0,0t,"",123,0,Kırmızı);
//----
if (Sipariş Toplamı()==1 ) // burada sipariş değişikliğinin bir sipariş seçili olması koşulunu ayarladım.
{
OrderSelect(bilet, SELECT_BY_TICKET, MODE_TRADES); // belirtilen sipariş seçimi, burada anlaşmalar
OrderModify(ticket, OrderOpenPrice(), Ask+sl*Point,Ask-tp*Point,0,Mavi); // açık pozisyon fiyatından seçilen bilet ile emri değiştirin, SL değerini puan olarak değiştirin, TP'yi değiştirmeden bırakın
}
}
#include <strlib.mgh>
ve şununla değiştirin:
#include <stdlib.mgh>
İnsanlar, birini erişilebilir bir biçimde açıklayın, parametrelerin ne olduğunu referansla açıklayın. Belgeleri okudum, ancak yalnızca oradan bunun mümkün olduğunu anladım ve değişkeni tanımladıktan sonra & değiştiricisini koymak gerekiyor. Açıklamaya açıklamalarla birlikte küçük bir program eşlik etseydi harika olurdu... Parametreleri referans ile geçirmek ile parametreleri geçmek arasındaki genel fark nedir?