Bir sınıf olarak satın al stop Sat stop Grid Expert Advisor - sayfa 4

 
Vladimir Karputov :

35. adım genişletilmiş toplamlar için:

Direction_of_trades_EURUSD_35

Burada görülüyor ki

  • tüm vakaların neredeyse %50'si, sürekli işlemlerin uzunluğunun "1"e eşit olduğu zamandır. Yani, şu gibi durumlarımız var: Açılan Al ve ardından pozisyonu tersine çevir (yani, kapalı Zararda al ve açık Sat) veya bu durum: Açıldı Sat ve sonra pozisyonu tersine çevirdi (yani, kapalı Zararda sat ve açıldı Satın almak). Bu nedenle, sürekli işlemlerin uzunluğunun "1"e eşit olduğu durumlar garantili bir kayıptır.
  • Buy örneğinde, sürekli işlemlerin uzunluğu "2"ye eşit olan tüm vakaların yaklaşık %25'i: Buy'u açtılar, sonra başka bir Buy açtılar ve sonra pozisyonu tersine çevirdiler (yani, iki Alış kapattılar ve Satış'ı açtılar - sonuç olarak, sıfıra eşit bir kayıp aldılar).

Bu çok sayıda kategorinin ("1" ve "2"ye eşit sürekli işlemlerin uzunluğu) Bekleyen Durdur emirleri verme stratejisini ayarlamak için daha ayrıntılı olarak ele alınması gerektiğini düşünüyorum.


Piramit fikrini kontrol edelim (bir önceki pozisyon yönünde pozisyon açma durumları için):

1. Partiyi katlanarak artırma seçeneği

Geometrik ilerleme - b1, b2, b3, ... (progresyon üyeleri), ikinciden başlayarak sonraki her sayının, belirli bir q sayısıyla çarpılarak bir öncekinden elde edildiği bir dizi (progresyon üyeleri). ilerlemenin paydası), burada b1!=0, q !=0: b1, b2=b1*q, b3=b2*q .

2. Aritmetik ilerlemede partiyi artırma seçeneği

Aritmetik ilerleme (cebirsel) - ikinciden başlayarak her sayının bir öncekinden sabit bir d sayısı (adım veya ilerlemenin farkı) eklenerek elde edildiği bir sayı dizisi (ilerlemenin üyeleri) ona.

 

İki tür regresyonun tanıtılmasıyla hesaplanan parti büyüklüğünü kontrol etmek gerekli hale geldi. Bunun için LotCheck fonksiyonu kullanılacaktır. Bu işlevi bir komut dosyasında kullanma örneği:

 //+------------------------------------------------------------------+
//|                                                     LotCheck.mq5 |
//|                              Copyright © 2017, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.000"
#property description "Checking the volume of the lot"
#property script_show_inputs
//---
input double start_lot  = 0.85 ;
input double step_lot   = 0.354 ;
#include <Trade\SymbolInfo.mqh>  
CSymbolInfo    m_symbol;                     // symbol info object
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   m_symbol.Name( Symbol ());
   m_symbol.Refresh();
//---
   Comment ( "" );
   Comment ( StringFormat ( "Symbol %s. Lots Min: %.2f, Lots Max: %.2f, Lots Step %.2f" ,
           m_symbol.Name(),m_symbol.LotsMin(),m_symbol.LotsMax(),m_symbol.LotsStep()));
//---
   double ext_start_lot = start_lot;
   double ext_step_lot  = step_lot;
//---
   for ( int i= 0 ;i< 21 ;i++)
     {
       Comment ( ChartGetString ( 0 , CHART_COMMENT ), "\n" ,
               "Input lot " ,ext_start_lot, ", lot check: " , DoubleToString (LotCheck(ext_start_lot), 2 ));
      ext_start_lot+=ext_step_lot;
     }
  }
//+------------------------------------------------------------------+
//| Lot Check                                                        |
//+------------------------------------------------------------------+
double LotCheck( double lots)
  {
//--- calculate maximum volume
   double volume= NormalizeDouble (lots, 2 );
   double stepvol=m_symbol.LotsStep();
   if (stepvol> 0.0 )
      volume=stepvol* MathFloor (volume/stepvol);
//---
   double minvol=m_symbol.LotsMin();
   if (volume<minvol)
      volume= 0.0 ;
//---
   double maxvol=m_symbol.LotsMax();
   if (volume>maxvol)
      volume=maxvol;
   return (volume);
  }
//+------------------------------------------------------------------+

Terminal günlüğünü tıkamamak için çıktının tamamı bir grafikte düzenlenir:

LotKontrol

Dosyalar:
LotCheck.mq5  5 kb
 

Danışman sınıfına geometrik ve aritmetik meslekleri eklendi. Geometrik bir ilerleme için uygulanan parti hesaplaması (şimdiye kadar).

 //+------------------------------------------------------------------+
//| 1.001:                                                           |
//|   when starting, sets Buy stop and sell stop                     |
//| 1.002:                                                           |
//|   OnTradeTransaction: if DEAL_ENTRY_IN delete all pending orders,|
//|   and, sets Buy stop and sell stop                               |
//| 1.003:                                                           |
//|   OnTradeTransaction: DEAL_ENTRY_IN                              |
//|      DEAL_TYPE_BUY => ClosePositions(POSITION_TYPE_SELL)         |
//|      DEAL_TYPE_SELL => ClosePositions(POSITION_TYPE_BUY)         |
//|   PlacesXXXX:                                                    |
//|      "RefreshRates()" is now inside the "PlacesXXXX"             |
//|   OnTradeTransaction:                                            |
//|      a "while" loop for "PlacesXXXX"                             |
//| 1.004:                                                           |
//|   add OnTester and save csv file                                 |
//| 1.005:                                                           |
//|   add Geometric and arithmetic progression                       |
//|      only a geometric progression is realized                    |
//+------------------------------------------------------------------+

ds

 

Alım satımın ( EURUSD sembolü , adım 35) normal lot ve geometrik ilerleme ile karşılaştırılması:

Uzman Danışman Satın al durdur Sat dur Bir sınıf olarak ızgara: normal lot

Pirinç. 1. Uzman Danışman Satın al durdur Sat dur Bir sınıf olarak ızgara: normal lot


Uzman Danışman Satın al durdur Sat durdur Bir sınıf olarak ızgara: katlanarak lot

Şekil 2. Uzman Danışman Satın al durdur Sat durdur Bir sınıf olarak ızgara: katlanarak


Uzman Danışman Satın al durdur Sat durdur Bir sınıf olarak Izgara: aritmetik ilerlemede çok

Pirinç. 3. Uzman Danışman Satın al durdur Sat durdur Bir sınıf olarak Izgara: aritmetik ilerlemede lot


Bunu şöyle ifade edelim: "Bir yönde pozisyon alırken lotu geometrik bir dizide veya aritmetik bir dizide artırmak, sabit bir lotla işlem yapmaktan daha kötü görünüyor."

 

Depolamadaki verileri güncellemeye çalıştığımda şunu yazıyorum:

2017.10.03 12:59:10.146 Depolama, http verilerini okuyamadı (storage.mql5.com:443 okuma başarısız oldu [12152])

Genel olarak, Depo ile işim iyiye gitmiyor... Yanlış bir şey yapıyorum...
 
George Merts :

Depolamadaki verileri güncellemeye çalıştığımda şunu yazıyorum:

2017.10.03 12:59:10.146 Depolama, http verilerini okuyamadı (storage.mql5.com:443 okuma başarısız oldu [12152])

Genel olarak, Depo ile işim iyiye gitmiyor... Yanlış bir şey yapıyorum...

Skype'a geçelim, ardından Storage sorununun çözümünü buraya yazalım...

 
Vladimir Karputov :

Skype'a geçelim, ardından Storage sorununun çözümünü buraya yazalım...

Sorun yok. özelden yazdım

 

Böyle.

Windows7 x64'üm var, kullanıcı hesabı kontrolü devre dışı. Meta düzenleyiciye her girdiğinizde, her seferinde Vault'a bağlanmanız gerekir.


 

Vladimir, lütfen beni projeye ekle. teşekkürler