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

 
gyfto :

Bu ifade nasıl sadeleştirilir?

bu, MetaQuotes'un ADX algoritmasındandır. MetaQuotes'un kendileri aşağıdaki ciroyu kullanır:

- nasıl basitleştirilir?


Ve neden en basit seçenek size uymuyor?

z= 0 ;
if (y>x && y> 0 ) z=y;
 
Roger :


Ve neden en basit seçenek size uymuyor?


Belki bazen soruna farklı bir açıdan bakmanız gerekir. Aynen, teşekkürler.
 
gyfto :

hoz, y Burada ışıklar kapanırken daha da kısalmayı düşündüm. Bakınız: bir değişken koyarsanız

cnt=cnt+step'imiz var, burada

Ama 1=cnt/cnt, a -cnt=cnt/(-1), fark sadece paydadadır. Şimdi x^0=1, x^1=x, yani şunu hatırlayın. Boole değişkenimizi _if göstergeye koyabilirsiniz, yani adım= cnt/a*(cnt^_if) ; nerede

Ancak ±a, 2*_if-1'e eşittir, yani.

Veya basitleştirin


Vay, basitleştirdin. senin mantığını anlamadım
 
Anladığım kadarıyla aşağı ineceğiz... :-)))
 
zoritch :
Anladığım kadarıyla aşağı ineceğiz... :-)))

Ayrıca hiçbir şey anlamadığımı fark ettim. O ikonlar bile anlaşılmaz.. :)
 
hoz :

bir işaretin çubukları yükselir, yani. boğa.

 int LastCandlesType( int trend)
{
   int cnt,                             // Счётчик идущих друг за другом свечей с требуемыми признаками

   for ( int i=i_AnyBarsToHistory; i>= 1 ; i--)
   {
       if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt)     // Если бар соответствует требуемым признакам..
          cnt++;                                                                     // .. прибавим 1 к счётчику

       if (Close[i] < Open[i])                                                         // Если бар, не соответствует основному признаку..
          cnt = 0 ;                                                                   // .. счётчик обнуляем
      
/*      if (i == 1)
      Print("i = ", i,"; cnt = ", cnt);*/
   }

   if (cnt == 3 )                                                                     // Если 5 баров вподряд бычьи..
     return (REQUIRED_SEQUENTIAL_CANDLE_GOT);                                         //..Выходим из функции
}

Şu anda varsayılan ana eğilimi iletmekten sorumlu olacak olan trend parametresini bu fonksiyona geçirirken, bu parametreye dayalı olarak daha fazla hesaplama yapılması için nasıl yapılır.

Onlar. trend == down ise, o zaman döngüdeki fonksiyon şimdiki gibiydi ve eğer trend == up ise, o zaman döngüde, Open[i] ve Close[i] , koşulların karşılanması için değiştirildi. Çünkü bu durumda barın kapanış fiyatı zaten açılış fiyatından daha düşük olacaktır ve sonuç olarak aradaki fark eksi işareti ile olacaktır.

 int LastCandlesType( bool trend) //trend равен 1 (бычий) или 0 (медвежий)
   int cnt,                             // Счётчик идущих друг за другом свечей с требуемыми признаками

   for ( int i=i_AnyBarsToHistory; i>= 1 ; i--)
   {
       if (( 2 *trend- 1 )*(Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt)     // Если бар соответствует требуемым признакам..
          cnt++;                                                                     // .. прибавим 1 к счётчику

       if (( 2 *trend- 1 )*(Close[i] - Open[i]) < i_sizeOfSequentialCorrectionBar * pt)     // Если бар, не соответствует основному признаку..
          cnt = 0 ;                                                                   // .. счётчик обнуляем
      
/*      if (i == 1)
      Print("i = ", i,"; cnt = ", cnt);*/
   }

   if (cnt == 3 )                                                                     // Если 5 баров вподряд бычьи..
     return (REQUIRED_SEQUENTIAL_CANDLE_GOT);                                         //..Выходим из функции
}

Ya da sadeleştirelim

 int LastCandlesType( bool trend) //trend равен 1 (бычий) или 0 (медвежий)
   int cnt,                             // Счётчик идущих друг за другом свечей с требуемыми признаками

   for ( int i=i_AnyBarsToHistory; i>= 1 ; i--)
   {
       bool _if=(( 2 *trend- 1 )*(Close[i] - Open[i])>=i_sizeOfSequentialCorrectionBar * pt); cnt=cnt+cnt/(( 2 *_if- 1 )* MathPow (cnt, _if));
      
/*      if (i == 1)
      Print("i = ", i,"; cnt = ", cnt);*/
   }

   if (cnt == 3 )                                                                     // Если 5 баров вподряд бычьи..
     return (REQUIRED_SEQUENTIAL_CANDLE_GOT);                                         //..Выходим из функции
}

Burada Δ, kastedilen farktır, yani. Kapat[i], Açık[i]'dir ve ^ üs işaretidir. const - verilen ifadede bir sabit, yani i_sizeOfSequentialCorrectionBar * pt, standart matematik gösterimi, hiçbir şey icat etmedi. 2*bVar-1, ±1'e benzer, burada bVar herhangi bir bool değişkenidir. Ve 2*bVar-1 ifadesi 0 ve 1 değil, -1 ve +1 değerlerini alır. ≥ MQL4 >='dir, ayrıca standart bir matematiksel gösterimdir. adım - adım, yani cnt++'da adım 1'dir ve cnt=0'da adım -cnt'dir. Gösterimden başka ne açık değildi?

 
MT4'ün ücretsiz günlükleri otomatik olarak silmesini (veya hiç oluşturmamasını) nasıl bana kim söyleyebilir? Ve sonra 5 karakterli bazı DC'lerde, bu günlükler her gün korkunç bir boyuta (her biri 1,6 GB) ulaşır ve VPS'deki alan sınırlıdır. ATP önceden.
 
M2012K :
MT4'ün ücretsiz günlükleri otomatik olarak silmesini (veya hiç oluşturmamasını) nasıl bana kim söyleyebilir? Ve sonra 5 karakterli bazı DC'lerde, bu günlükler her gün korkunç bir boyuta (her biri 1,6 GB) ulaşır ve VPS'deki alan sınırlıdır. ATP önceden.

Kendi başına yapabilirsin:

kitaplık1 , kitaplık2 .

==============

Bununla birlikte, terminal tarafından açılan son (geçerli) dosya. Bunu kaldırmak kolay değil. Ancak başlangıçta kaydedilen içeriği silebilirsiniz.

Günlüğe kaydetme devre dışı.

==============

1. Dosyalar klasörüne günlükler (kütüphane1) içeren klasöre sembolik bir bağlantı oluşturun.

2. MQL4 kullanarak tüm gereksiz dosyaları silin.

3. MQL4'ü kullanarak mevcut dosyayı açın. İhtiyacınıza göre düzenleyin.

4. Dosyayı kapatın.

5. Bağlantıyı kaldırabilirsiniz. Silemezsiniz. O zaman işe yarayacaktır.

==============

Ayrıca bir komut dosyası (BAT) oluşturabilir ve bunu Expert Advisor'da çalıştırabilirsiniz. Senaryo yukarıdakiyle aynı. Sadece bir bağlantı oluşturmadan. Elbette Windows araçlarını kullanarak dosyalarla çalışmak.

 
M2012K :

MT4'ün ücretsiz günlükleri otomatik olarak silmesini (veya hiç oluşturmamasını) nasıl bana kim söyleyebilir?

Ve sonra 5 karakterli bazı DC'lerde, bu günlükler her gün korkunç bir boyuta (her biri 1,6 GB) ulaşır ve VPS'deki alan sınırlıdır. ATP önceden.

neyin günlükleri?

uzman hataları?

 

Hey! İlkel bir robotu sonlandırmak için yardıma ihtiyacınız var. Başlangıç olarak, en basit stratejimi açıklayacağım, böylece nerede ve neden yardıma ihtiyaç duyulduğu daha net anlaşılır.

TS'nin özü:

1. Açılış fiyatı MA'nın altındaysa ve kapanış fiyatı daha yüksekse, satın alıyoruz.

2. Açılış fiyatı MA'dan yüksekse ve kapanış fiyatı düşükse satıyoruz.

3. Fiyat, en iyi fiyattan %X kaydıysa, siparişi kapatın. Takip eden bir durdurma gibi bir şey, ancak puan yerine, sipariş açılış mesafesinin %X'i ve en iyi fiyat. Resimde gösterildiği gibi:

AB - sipariş açılışından en iyi fiyata kadar olan mesafe; BC=AB'nin %X'i; С - sipariş kapanışı.

Programda yazdığım 1. ve 2. noktalar:

 extern int period= 50 ;
extern int ma_shift= 0 ;
extern int Magic= 666 ;
extern double lot= 0.1 ;
extern int SL= 150 ;


//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   int kolpos= 0 ;
   double ma= iMA ( NULL , 0 ,period,ma_shift, MODE_SMMA , PRICE_MEDIAN , 0 );
//----
   for ( int pos= 0 ; pos< OrdersTotal (); pos++)
   {
   OrderSelect (pos, SELECT_BY_POS, MODE_TRADES);
   if (OrderSymbol()== Symbol ()&&OrderMagicNumber()==Magic)
   kolpos++;
   }
   if (kolpos== 0 )
   {
 
   if (Open[ 1 ]>ma && Close[ 1 ]<ma)  
   OrderSend ( Symbol (),OP_SELL,lot,Bid, 10 ,Bid+SL* Point , 0 , NULL ,Magic, 0 ,Red);
   if (Open[ 1 ]<ma && Close[ 1 ]>ma)  
   OrderSend ( Symbol (),OP_BUY,lot,Ask, 10 ,Ask-SL* Point , 0 , NULL ,Magic, 0 ,Green);
   
   }
   
   
  
//----
   return ( 0 );
  }

Genel olarak, TS'm için siparişleri kapatmak için bir işlev yazma (3. nokta) ve mevcut kodu işleve uyarlama konusunda yardıma ihtiyacım var.

PS Ve TC'nin çok sıcak olmadığını biliyorum.

Neden: