[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 531

 

Böyle. Ne tür parantezler var? Şu anda konuşuyorum. Stil, geometri ders kitaplarındaki gibidir.

 if ( CCI_50S> 100 &&CCI_50< 100 ||CCI_50S> 0 &&CCI_50< 0 || CCI_50S>- 100 &&CCI_50<- 100 )CCInapravlenie=true

CCI_50S, ilk tikteki gösterge değeri ve fiyat olduğunda; CCI_50 gösterge değeri ve sıfır kene fiyatı;


CCI_50S> 100 &&CCI_50< 100 Gösterge yukarıdan aşağıya 100 çizgisini geçerse

Veya

CCI_50S> 0 &&CCI_50< 0 Gösterge sıfır çizgisini yukarıdan aşağıya geçerse

Veya

CCI_50S>- 100 &&CCI_50<- 100 Gösterge yukarıdan aşağıya doğru eksi yüz çizgisini delerse

O zaman gerçek!!!

 
Dimka-novitsek :

Böyle. Ne tür parantezler var? Şu anda konuşuyorum. Stil, geometri ders kitaplarındaki gibidir.

CCI_50S, ilk tikteki gösterge değeri ve fiyat olduğunda; CCI_50 gösterge değeri ve sıfır kene fiyatı;


CCI_50S> 100 &&CCI_50< 100 Gösterge yukarıdan aşağıya 100 çizgisini geçerse

Veya

CCI_50S> 0 &&CCI_50< 0 Gösterge sıfır çizgisini yukarıdan aşağıya geçerse

Veya

CCI_50S>- 100 &&CCI_50<- 100 Gösterge yukarıdan aşağıya doğru eksi yüz çizgisini delerse

O zaman gerçek!!!


Parantezler, boole değişkeninin değerlendirildiği sırayı belirler. Ve bir şey bekleyip başka bir şey almak sürpriz değil
 
TarasBY :

Evet! - öyle bir şey var ki - parantezleri kaybettim ...

- düzeltildi. :)

Parantezler güzel tabi... Kendim dikkate aldım (aklıma ekledim). - Problem değil. Ama bu, eğer doğru anladıysam, sadece farklı bir yazı stili mi? Kodum nerede yanlış ?

Hatta sadece 2 satır bıraktım, yani. 2 koşul. Ve yine de, sadece bir satırı açığa çıkardığımda (yani, durum hiçbir koşula uymuyor, çünkü "ve" den sonra 2. parametre yok) ve program zaten! değişkenlerin değerlerini ortaya çıkarmaya başlar. Ancak bunun gerekçesi henüz oluşmadı.

Ve stiller açısından - yazmaya çalışmadığım anda - ve bireysel işlevler açısından. Ve ifam tarafından - her eşittir işareti için ayrı bir işaret yapıldı. Ve diğer 10 seçenek - hiçbir şey temelde değişmez.

 

Nasıl üstesinden gelirim? Bazı terminaller artık alım satım raporlarını kaydetmez (geçmişten ayrıntılı olarak ve test cihazından gelen raporlar html formatında).

Terminal klasörlerine girmedim , hiçbir şey silmedim.

Sayesinde.

 
Chiripaha :

Ticaretin yönü için bayraklar koydum. Koşul: Satırlar arasında bir bölgeye düşerse al satmayın, başka bir bölgeye düşerse alıp satmayın. Bu işlemi yatay çizgilerle düzenliyorum.

Ondan önce açıkta olan hatların fiyatlarını soruyorum. Ve bundan sonra, bayrağa bağlı olarak sipariş vermek veya kapatmak için bir blok.

Kod önemsiz derecede basittir. Ama... - soru...

Bu yapı işlemeye başladığında alış ve satış değerlerinin öngörülemez (kaotik) olduğu ortaya çıkıyor. Bu neden oluyor? çünkü "if" işlevi ve "son" ve "fazla/az" operatörleri için açık koşullar vardır.

Onlar. program kendi düşüncelerine göre davranır: değişkenlerin değerlerinde ne yazılacağına bakılmaksızın ya alır ya satar ya da hiçbir şey yapmaz.


Koşulların sağlanması ve en önemlisi çalışması için nasıl ve ne yazılmalıdır? Neyi yanlış yapıyorum ve neyi özlüyorum? (fonksiyon koşullarında belirtilen, ihtiyaç duyulan her şey gibi)


Ve aynı konu kapsamında bir şey daha var: Değişkenlerin değerleri koşullara göre değiştiğinde, danışmanın ayarlarında (F7'den girdiğinizde) değerler ayarlandığı gibi kalıyor kullanıcı tarafından. Dolayısıyla bu değişkenlerin hangi değerlerinin kaldığını anlamak artık mümkün değil. Şu anda değerlerinin ne olduğunu nasıl netleştirebilirim?


Çizgileri nasıl oluşturuyorsunuz? Test cihazında veya demoda nerede kontrol ediyorsunuz?
 
Vinin :

Çizgileri nasıl oluşturuyorsunuz? Test cihazında veya demoda nerede kontrol ediyorsunuz?

2 haftadır bunun üstesinden gelmeye çalışıyorum - yani. Zaten pek çok şey denedim (benzer bir robotun 3 çeşidini yazmak dahil - ama sorun aynı).

Hatları manuel olarak ayarlarım (düzenli yatay çizgiler ) - Sonra bu hatların fiyatını soruyorum - Fiyat 2 satır aralığına düşerse bayrak çalışmalıdır (al veya sat - maksimum 4 bayrak seçeneği alırsınız) her satır çifti için).

satırların adları değişkenlerin adlarıyla aynıdır, yalnızca "r" harfi ("fiyat" anlamına gelir) olmadan.

Test cihazını ve demoyu kontrol ediyorum - sonuçlar aynı.

Kontrol etmek için - Seçeneği en aza indirdim - 2 çift satıra kadar (alış ve satış için) - cant hala tırmanıyor.

Çizgilerin kombinasyonu ne kadar az olursa, sorun o kadar az kendini gösterir (ancak kaybolmaz - bu yanlış bir duygudur). Seçenekler ne kadar fazlaysa, sorun o kadar dışbükeydir.


not

Robotun varyantlarından biri (birincil olan tam olarak buydu), hattı ayarlarken otomatik olarak 2 ek satır ayarlayın. Ve sonra pervaz tırmanmadı. Ancak! tüm satırları manuel olarak koymaya çalıştığım anda bu söve görünmeye başladı. - Yani robot kendi takdirine bağlı olarak (hem test cihazında hem de demoda) ticarete başladığı için ek çizgiyi (seviye ana çizgidir) ayarlamak için zamanı yoktu.

 

Herkese iyi günler ve iyi pazarlar!

Söyle plz, kafa yemek yapmıyor, acemi..

Sorunun özü:

iki giriş gönderdi

sonrasında? Önce bu siparişlerin her birini sırayla seçmem ve değiştirmem gerekiyor, AMA! Bilmiyorum, ne bu emirlerin pozisyon numarası, ne de hisse senedi... Her pozisyonun senedini nasıl öğrenebilirim? orderselect işlevini uygulamadan önce

 

Belirli koşullarda bir uzmanın çalışmasını hangi işlev kesintiye uğratabilir/bitirebilir?

yani Expert Advisor'ım çalışıyor ancak herhangi bir arıza durumunda (bu noktayı zaten yazdım), Expert Advisor'ı kapatan ve çalışmayı ve ticareti durduran bir fonksiyon çalıştırılmalıdır.

 
Ekburg :

Belirli koşullarda bir uzmanın çalışmasını hangi işlev kesintiye uğratabilir/bitirebilir?

yani Expert Advisor çalışıyor, ancak herhangi bir arıza durumunda (bu noktayı zaten yazdım), Expert Advisor'ı kapatan ve çalışmayı ve ticareti durduran bir fonksiyon çalıştırılmalıdır.

İlk olarak, danışmanın "yoğun saat" başlangıcında - belirtilen koşullar - "ÖZEL OLARAK" ne yapması gerektiğine karar vermeniz gerekir. Ticareti durdurursanız, bunu yapabilirsiniz:

 bool STOP = false ;
int start()
{
     //---- В самом начале кода
     if (STOP) return ( 0 );
     //---- код советника
}
 
TarasBY :

İlk olarak, danışmanın "yoğun saat" başlangıcında - belirtilen koşullar - "ÖZEL OLARAK" ne yapması gerektiğine karar vermeniz gerekir. Ticareti durdurursanız, bunu yapabilirsiniz:


Buna karar verdim! yani Expert Advisor'ın işini tamamlamak için return(0) fonksiyonunu eklemek yeterli mi?
Neden: