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

 

Genellikle <= kullanılır. Veya >=. Her iki durumda da uygulama donanımdır, Metaquotes'ın bununla hiçbir ilgisi yoktur.

Diğer dillerin geliştiricilerinin de bununla hiçbir ilgisi yoktur. temel operasyon. + ve - gibi.

 
drknn :

Koşulda kesin bir ayrım olmadığından (ve öğelerinden en az 1'i doğruysa her zaman doğrudur), o zaman geliştiricinin sitesinde bu koşulu işlemek için en mantıklı şey önce molekülü bölmek olacaktır. (a>b || c>d) "a >b" ve "c>d" atomlarına dönüştürün, ardından gerçeği kontrol etmek için bir sıralı atom sayımı döngüsü düzenleyin. Ve bir sonraki atom doğruysa, döngüyü hemen durdurun ve programın koşul parantezlerinin hemen dışında kalan eylemi gerçekleştirmesine izin verin - yani, kalan atomlardan geçmeyin, çünkü bu artık gerekli değildir. Ve burada, oluşturulan atom listesinin başından sonuna veya sonundan başına kadar atomların içinden geçmemiz önemli değil. Yalnızca geliştirici (meta alıntılar) size arama yönünü gösterebilir. Ve neden buna ihtiyacın vardı? Kendi derleyicinizi mi yazıyorsunuz?
Akla geldi: TS mantığında a>b koşulu c>d ==true'dan çok daha sık doğruysa, bu iki koşulun doğruluğunu kontrol etme sırası programı hızlandırmak için önemli olabilir.
 
artmedia70 :
Akla geldi: TS mantığında a>b koşulu c>d ==true'dan çok daha sık doğruysa, bu iki koşulun doğruluğunu kontrol etme sırası programı hızlandırmak için önemli olabilir.

İfade aslında şöyle görünür: if(a>b || (a<=b && c>d)) . Doğruluk soldan sağa doğru kontrol edilirse, programı hızlandırmak açısından a<=b ifadesi gereksiz olacaktır. Soru şuydu, soldan sağa veya tam tersi veya farklı durumlarda farklı şekillerde.
 
AndEv :

İfade aslında şöyle görünür: if(a>b || (a<=b && c>d)) . Doğruluk soldan sağa doğru kontrol edilirse, programı hızlandırmak açısından a<=b ifadesi gereksiz olacaktır. Soru şuydu, soldan sağa veya tam tersi veya farklı durumlarda farklı şekillerde.

Bana sebebinin ne olduğunu söyle, danışman siparişleri açmıyor, 133 hatası yazıyor
 
paladin80 :

Pozisyon açılış zamanını, mevcut Bar Time[0]'ın açılış zamanı ile karşılaştırmak gerekir. Pozisyon açılış zamanı, bar açılış zamanından büyük veya ona eşitse, EA yeni pozisyon açmaz. Yeni bir çubuk göründüğünde, Zaman[0] değeri daha sonraki bir zamana değiştirecek ve böyle bir karşılaştırma, mevcut (yeni) çubukta pozisyonun henüz açılmadığını ve ticaret yapmanın mümkün olduğunu gösterecektir.

Bu arada, sorunuz 2 alt soruya ayrılabilir:
1. Mevcut barda bir pozisyon açıldı ve kapanmayı başardı, ancak hala yeni bir bar bekliyoruz.
2. Mevcut çubukta bir pozisyon açıldı ve kapanmayı başardı, ardından aynı çubukta tekrar pozisyon açabilirsiniz (yani 1 çubukta aynı anda 1 pozisyon açabilirsiniz).

genel olarak, böyle bir sorun: birkaç dakika boyunca aynı çubukta, sipariş açma koşulu gerçekleşir ve sipariş açılır. sonra tekrar düşerek ovuşturur ve ikinci bir düzen açılır. Nasıl başa çıkılır bununla? Bir barda sadece bir kez sipariş açmayı düşündüm. belki başka seçenekler vardır?
 
modası geçmiş nedir ??? "Denemeyi bırak" gibi mi?
 
GarKain :
genel olarak, böyle bir sorun: birkaç dakika boyunca aynı çubukta, sipariş açma koşulu gerçekleşir ve sipariş açılır. sonra tekrar düşerek ovuşturur ve ikinci bir düzen açılır. Nasıl başa çıkılır bununla? Bir barda sadece bir kez sipariş açmayı düşündüm. belki başka seçenekler vardır?

Bir pozisyon açılmasına izin veren/reddeden bir bayrak kullandığınızı görüyorum. Bayrağın şartını bilmeden bir şey önermek mümkün değil. Uzman Danışmanımda bir pozisyon açarken 2. yaklaşımı kullanıyorum ve aşağıdaki kodu önerebilirim:

 if ( OrdersTotal ()> 0 )
{   for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
   {   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
      {   if ( OrderSymbol ()== Symbol ())
         {   if ( OrderMagicNumber ()==MagNum) // Проверка соответствия позиции по магик-номеру
            {  Closed_bar= OrderOpenTime ();
               if (Closed_bar>= iTime ( NULL , PERIOD_H1 , 0 ))
               return ( 0 );
         }  }
}  }  }
 
moskitman :
modası geçmiş nedir ??? "Denemeyi bırak" gibi mi?

Seriye bir alçak geçiren filtre uygulamak == trend (eğim) bileşenini çıkarmak. en basit örnek: fiyata hareketli bir ortalama uygulayın ve ardından farkı ayrı bir pencerede gösterin.
 
paladin80 :

Bir pozisyon açmaya izin veren/reddeden bir bayrak kullandığınızı görüyorum. Bayrağın şartını bilmeden bir şey önermek mümkün değil. Uzman Danışmanımda bir pozisyon açarken 2. yaklaşımı kullanıyorum ve aşağıdaki kodu önerebilirim:



 if ( OrdersTotal ()> 0 )
{   for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
   {   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
      {   if ( OrderSymbol ()== Symbol ())
         {   if ( OrderMagicNumber ()==MagNum) // Проверка соответствия позиции по магик-номеру
            {  Closed_bar= OrderOpenTime ();
               if (Closed_bar>= iTime ( NULL , PERIOD_H1 , 0 ))
               return ( 0 );
         }  }
}  }  }

Nerede ve nerede olduğunu tam olarak anlamadım.

 
Bunu şöyle yazdım:

eğer öyleyse, o zaman doğrudur

true değerine eşitse, sipariş açılır.



Şöyle şöyle yazarsam emir açılır. bu sorunu çözecek mi?