MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1472

 
ANDREY :
Pr, 30 pipten sonra sadece 1 emir açmak için kullanılan bir değişkendir. Ve bu değişken olmadan, her tikte açılırlar.
 if(OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 , 0 , 0 , "300" , 0 ))
{LoU=Bid;}

Yani bu değişkene ihtiyacınız yok ... ve yük zaten daha az)

 
MakarFX :
Daha da kötüsü ... hala çubuk sayısını bilmeniz gerekiyor


ince ayar yaptım... dene

Denedim. Hepsi aynı.
senin kodun

 double LoU,Pr;
int OnInit ()
  {
   LoU=Low[ 0 ];
  }
//+------------------------------------------------------------------+
void OnTick ()
  {
   if (Low[ 1 ]<LoU) {LoU=Low[ 1 ];}
   if ((Bid- 30 * Point )>=LoU)
     {
       if ( OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 , 0 , 0 , "300" , 0 )) LoU=Low[ 0 ];
     }
  }


 
MakarFX :

Yani bu değişkene ihtiyacınız yok ... ve yük zaten daha az)

Belki gerekli değildir. Ama onunla savaşmıyorum...

 
ANDREY :

Belki gerekli değildir. Ama onunla savaşmıyorum...

1) İşin hızıyla mücadele ediyorsanız, herhangi bir kod optimizasyonu bir artıdır.

2) LoU başlatmanızın olmaması nedeniyle sonuçlardaki fark - başlangıçta hiçbir şeye eşit ... BOŞ

 
MakarFX :
Daha da kötüsü ... hala çubuk sayısını bilmeniz gerekiyor


ince ayar yaptım... dene

Bir seçenek olarak Вid - Low[ ? ] >= 30 s. bir sipariş açın. Ama bu Low [ 'un sayısını nasıl öğrenebilirim ? ] Teklif bu Düşük'ün üzerine çıktıktan sonra [ ? ] 30 pp ?
 
ANDREY :
Bir seçenek olarak Вid - Low[ ? ] >= 30 s. bir sipariş açın. Ama bu Low [ 'un sayısını nasıl öğrenebilirim ? ] Teklif bu Düşük'ün üzerine çıktıktan sonra [ ? ] 30 pp ?

Ve eğer Vid düşerse, bu yeni bir minimum anlamına gelir ... ve hangi minimumdan hesaplamalıyız?

 
MakarFX :

1) İşin hızıyla mücadele ediyorsanız, herhangi bir kod optimizasyonu bir artıdır.

2) LoU başlatmanızın olmaması nedeniyle sonuçlardaki fark - başlangıçta hiçbir şeye eşit ... BOŞ

Yani, bildirirken bir LoU değeri atarsam, kod çok daha hızlı çalışır mı?

01/04/2010 tarihinden itibaren ilk barın açılış fiyatını ona atadım.

 double LoU = 1.6121 ,Pr;
void OnTick () //531
{
if (Bid<LoU)
LoU=Bid;
//**************************************************************||TimeCurrent()==1262568096
if (Bid-LoU>= 0.0030 &&Pr!=LoU)
{
OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 , 0 , 0 , "300" , 0 );
Pr=LoU;
LoU=Bid;

}
}
 
MakarFX :

Ve eğer Vid düşerse, bu yeni bir minimum anlamına gelir ... ve hangi minimumdan hesaplamalıyız?

Bırakın, asıl mesele, siparişin 30 pp'de açılmasıdır. Ve açıldıktan sonra, yeni bir dip bulmak için fiyatın düşmesine izin verin. Aktüel bir Vid olduğunu ve Low'dan ayrıldığını hayal edebiliyor musunuz?   elli   ] sadece 30 puan ve sipariş açabilirsiniz. if ( Video - Düşük[   elli   ] > 30 p   ) - bir sipariş açın. Ama bunun ellinci mumun en düşük seviyesi olduğunu nereden biliyorsun? Yani, bu durumda, yerel bir minimumun ortaya çıkmasından önce olanı değil, ortaya çıkmasından sonra olanı kontrol etmek gerekir ve bu çok daha az kontroldür.
Ve bu durumda, bir sipariş açtıktan sonra fiyatın ne kadar düşeceği hiç önemli olmayacak.

 
ANDREY :

Bana öyle geliyor ki fraktal gösterge bana uymuyor. Birçok siparişi kaçıracak.

Kodum tarafından açılan sipariş, her tikte fiyat kontrolü ile mavi renkle vurgulanır. Bana öyle geliyor ki fraktal bu durumda benim için gerekli hiçbir şeyi söylemiyor.

Örnek olarak bir fraktal verdim. Ve asgariyi (sizin durumunuzda) nasıl tanımlarsınız, askeri bir sır görmek ... veya ne istediklerinin mutlak bir yanlış anlaşılmasıdır.

 
ANDREY :

Bırakın, asıl mesele, siparişin 30 pp'de açılmasıdır. Ve açıldıktan sonra, yeni bir dip bulmak için fiyatın düşmesine izin verin. Aktüel bir Vid olduğunu ve Low'dan ayrıldığını hayal edebiliyor musunuz?   elli   ] sadece 30 puan ve sipariş açabilirsiniz. if ( Video - Düşük[   elli   ] > 30 p   ) - bir sipariş açın. Ama bunun ellinci mumun en düşük seviyesi olduğunu nasıl öğrenebilirim. Yani, bu durumda, yerel bir minimumun ortaya çıkmasından önce olanı değil, ortaya çıkmasından sonra olanı kontrol etmek gerekir ve bu çok daha az kontroldür.

çubukları saymak zorunda değilsin

bir emir açtıktan sonra değişkene Low[0] değerini atayın (mevcut çubuğun düşük), ardından çubuk kapandıktan sonra Low[1] değeri değişkenden küçükse yeni bir değer atayın,

yoksa eskisi kalır. minimum.