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

 
r772ra :

Pozisyonlar arasında geçiş yap

Çok teşekkür ederim, şimdi her şeyi deneyeceğim!
 
r772ra :

Pozisyonlar arası döngü

Denedim, çalışmadı. Yani, evet, bulabilirsin. Ama sorun şu ki, bir iz ortaya çıkıyor. durum:

Örneğin, 01.01'de bir ticaret açtım, ancak koşul yalnızca 01.02'de çalıştı. Onlar. negatif yönde emrin açılış fiyatından, ikinci gün fiyat 50p geçti. Koşul karşılandığında, eylem yürütülür. Ve eylem, anlaşmayı 1/3 oranında azaltmaktır. işlem hacmini üç kat azaltın. Ancak eylem, partiyi tamamen kapatana kadar çalışacaktır. Biraz bayrak koyabiliriz. b=0 ise, o zaman bir eylem vardır. Ve eylemin sonunda b=1. Günün sonunda bayrağı sıfırlamazsak, geçmişe göre test ederken, işlem bir kez gerçekleşecek ve bu kadar. Sıfıra sıfırlarsak, bayrak sıfırlanır sıfırlanmaz, eylem tamamen kapanana kadar siparişleri azaltmaya yeniden başlar. İlk açılan anlaşmanın hacmini ve ardından değişen hacmi karşılaştırmanın mümkün olacağını düşündüm, ancak karşılaştırıldığında, her zaman aynı olacaklar. Çünkü partinin hacmini azaltırsak, hesaptaki fon miktarı da azalacaktır, bu nedenle ilk hacim yeniden hesaplanacaktır. Onlar. o da değil, sanırım 3. gün oldu bile. Sadece anahtarı bulamıyorum. Lütfen söyle bana, başka bir fikrin var mı?

 
Boneshapper :

Tünaydın!

Sevgili profesyoneller, lütfen söyleyin.

Sistemim bir sipariş açar. Fiyat, bu emrin açılış fiyatını 50p aşarsa, emir değiştirilmelidir.

OrderSelect(0, SELECT_BY_POS,MODE_TRADES);

çift AÇIK = OrderOpenPrice ();
çift maximus = AÇIK + 0.00500;
Alert("maksimum = ",maksimus);
çift minimum = AÇIK - 0.00500;
Yeniler(); //Veriyi güncelle.
timecur = TimeToStr(TimeCurrent(),TIME_SECONDS); // Geçerli saati SS:DD formatında hesaplayın.
if ((timecur > "00:00:00") && (timecur < "22:58:00") && (Deal_s == 1) && (Deal_bb == 0)&& (Teklif > maximus))
{
OrderSelect(0, SELECT_BY_POS,MODE_TRADES);
Lootup = OrderLots() * 0.34;
Lootdown = OrderLots() * 0.34;
OrderClose(OrderTicket(), Lootdown, Ask, 10, CLR_NONE);
Uyarı(GetLastError());
Anlaşma_bb = 1;
}

Gündüz olursa yapabilirim. Ve ertesi güne aktarılırsa, o zaman her şey uçar. yeni bir günde başka bir sipariş açılabilir ve o zaten onu takip ediyor, ancak eskisini unutuyor. Söyleyin bana, lütfen, koşulun lotların her biri için açılış fiyatını + 50 p'yi kontrol etmesi için lot birkaç gün boyunca kapanana kadar nasıl yazacağımı?.

Zamanı bir diziye sürüyorsunuz ve sonra kendinizi dizilerle ölçüyorsunuz - orijinal!!!
Hiçbir şey icat etmenize gerek yok: önce zaman çözünürlüğünü kontrol ediyorsunuz ve ardından emirleri takip ediyorsunuz. Kanıtlanmış çözümleri hem burada hem de burada bulabilirsiniz .

 
Boneshapper :

Denedim, çalışmadı. Yani, evet, bulabilirsin. Ama sorun şu ki, bir iz ortaya çıkıyor. durum:

Örneğin, 01.01'de bir ticaret açtım, ancak koşul sadece 02.01'de çalıştı. Onlar. negatif yönde emrin açılış fiyatından, ikinci gün fiyat 50p geçti. Koşul karşılandığında, eylem yürütülür. Ve eylem, anlaşmayı 1/3 oranında azaltmaktır. işlem hacmini üç kat azaltın. Ancak eylem, partiyi tamamen kapatana kadar çalışacaktır. Biraz bayrak koyabiliriz. b=0 ise, o zaman bir eylem vardır. Ve eylemin sonunda b=1. Günün sonunda bayrağı sıfırlamazsak, geçmişe göre test ederken işlem bir kez gerçekleşecek ve bu kadar. Sıfıra sıfırlarsak, bayrak sıfırlanır sıfırlanmaz, eylem tamamen kapanana kadar siparişleri azaltmaya yeniden başlar. İlk açılan anlaşmanın hacmini ve ardından değişen hacmi karşılaştırmanın mümkün olacağını düşündüm, ancak karşılaştırıldığında her zaman aynı olacaklar. Çünkü partinin hacmini azaltırsak, hesaptaki fon miktarı da azalacaktır, bu nedenle ilk hacim yeniden hesaplanacaktır. Onlar. o da değil, sanırım 3. gün oldu bile. Sadece anahtarı bulamıyorum. Lütfen söyle bana, başka bir fikrin var mı?

Zaten günlerden ne? İstediğini yazıyorsun ve algoritma seni uyaracak. Bana öyle geliyor ki günleri kontrol etmenize gerek yok, ancak düzenin kâr / zararı ve ondan dans edin, çünkü 50 (veya her neyse) puan sizin için önemli ...

 
TarasBY :

Zamanı bir diziye alıyorsunuz ve sonra kendinizi dizilerle ölçüyorsunuz - orijinal!!!
Hiçbir şey icat etmenize gerek yok: önce zaman çözünürlüğünü kontrol ediyorsunuz ve ardından emirleri takip ediyorsunuz. Kanıtlanmış çözümleri hem burada hem de burada bulabilirsiniz .

Cevabınız için çok teşekkür ederim, tam olarak ihtiyacım olan şeye bir bağlantı verdiniz. Şimdi deneyeceğim, ama sanırım her şey yoluna girecek.

Sövelere gelince, üzgünüm, yeni başlayanlar, henüz programlama konusunda çok okuryazar değil.

 
artmedia70 :

Zaten günlerden ne? Siz istediğinizi yazın, algoritma sizi uyaracaktır. Bana öyle geliyor ki günleri kontrol etmenize gerek yok, ancak düzenin kâr / zararı ve ondan dans edin, çünkü 50 (veya her neyse) puan sizin için önemli ...

Evet haklısın. İttiği kâr/zarar durumundandı. TarasBY tam olarak neye ihtiyaç duyulduğuna dikkat çekti. Şimdi bununla ilgileneceğim.

İlginiz için teşekkür ederim!

 

Lütfen söyle bana, burada Kim'in fraktal bulma işlevi

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Возвращает экстремум ЗигЗага по его номеру.                    |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    tf - таймфрейм                  (      0     - текущий ТФ)              |
//|    ne - номер экстремума           (      0     - последний)               |
//|    dp - ExtDepth                                                           |
//|    dv - ExtDeviation                                                       |
//|    bs - ExtBackstep                                                        |
//+----------------------------------------------------------------------------+
double GetExtremumZZPrice( string sy= "" , int tf= 0 , int ne= 0 , int dp= 12 , int dv= 5 , int bs= 3 ) {
   if (sy== "" || sy== "0" ) sy= Symbol ();
   double zz;
   int     i, k=iBars(sy, tf), ke= 0 ;

   for (i= 1 ; i<k; i++) {
    zz= iCustom (sy, tf, "ZigZag" , dp, dv, bs, 0 , i);
     if (zz!= 0 ) {
      ke++;
       if (ke>ne) return (zz);
    }
  }
   Print ( "GetExtremumZZPrice(): Экстремум ЗигЗага номер " ,ne, " не найден" );
   return ( 0 );
}
Belirli bir süre için olgu sayısını sayacak aynı işlev nasıl yazılır?
 
berezhnuy :

Lütfen söyle bana, burada Kim'in fraktal bulma işlevi

Belirli bir süre için olgu sayısını sayacak aynı işlev nasıl yazılır?

Bunun gibi bir şey:

 void fGet_ExtremumsZZPrice ( string fs_Symbol,           // инструмент
                             int fi_TF,                   // таймфрейм
                             datetime fdt_TimeControl,   // время, до которого ищем экстремумы
                             int fi_ExtDepth = 12 ,       // ExtDepth         
                             int fi_ExtDeviation = 5 ,     // ExtDeviation
                             int fi_ExtBackstep = 3 )     // ExtBackstep
{
     double ld_Value, lda_Extremum[];
     int     li_size = iBarShift (fs_Symbol, fi_TF, fdt_TimeControl), li_IND = 0 ;
//---- 
     for ( int li_Bar = 1 ; li_Bar < li_size; li_Bar++)
    {
        ld_Value = iCustom (fs_Symbol, fi_TF, "ZigZag" , fi_ExtDepth, fi_ExtDeviation, fi_ExtBackstep, 0 , li_Bar);
         if (ld_Value != 0 .)
        {
             ArrayResize (lda_Extremum, li_IND + 1 );
            lda_Extremum[li_IND] = ld_Value;
            li_IND++;
        }
    }
//---- 
}

Geçerli zamandan Time_Control'e kadar olan ZigZag uç noktaları bir dizide toplanır.

 
Lütfen bana yeni fraktal veya eskisini kontrol etme işlevini söyler misiniz?
 
berezhnuy :
Lütfen bana yeni fraktal veya eskisini kontrol etme işlevini söyler misiniz?

Burada "Yararlı işlevler" konusuna gittim ve sizi "gümüş tepside" getirdim:

 //+----------------------------------------------------------------------------+
//| Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                    |
//+----------------------------------------------------------------------------+
//| Версия   : 07.10.2006                                                      |
//| Описание : Поиск ближайшего фрактала.                                      |
//+----------------------------------------------------------------------------+
//| Параметры:                                                                 |
//|   sy - наименование инструмента     (NULL - текущий символ)                |
//|   tf - таймфрейм                    (  0  - текущий ТФ)                    |
//|   mode - тип фрактала               (MODE_LOWER|MODE_UPPER)                |
//+----------------------------------------------------------------------------+
double FindNearFractal( string sy= "0" , int tf= 0 , int mode=MODE_LOWER) {
   if (sy== "" || sy== "0" ) sy= Symbol ();
   double f= 0 ;
   int d=MarketInfo(sy, MODE_DIGITS), s;
   if (d== 0 ) if ( StringFind (sy, "JPY" )< 0 ) d= 4 ; else d= 2 ;

   for (s= 2 ; s< 100 ; s++) {
    f= iFractals (sy, tf, mode, s);
     if (f!= 0 ) return ( NormalizeDouble (f, d));
  }
   Print ( "FindNearFractal(): Фрактал не найден" );
   return ( 0 );
}
Yaşayın ve sağlığınızın tadını çıkarın! Onlar sadece orada değiller! Sormak zorunda değilsin, beklemek zorunda değilsin, sadece al ve kullan!