[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 634

 
artmedia70 :

Ve sonra bir tane daha...

Grafik penceresinden test ederken, şablondan otomatik olarak yüklenen tüm hindileri çıkardım (şablon, danışmandan sonra adlandırılır ve test sırasında otomatik olarak yüklenir).

Test cihazının günlüğü, özel hindinin başarılı bir şekilde yüklenmesi hakkında sürekli olarak yazar, ardından hemen silinmesinin bir kaydı gelir. Ve böylece test boyunca ...

Bu normal mi yoksa bağırsak yok mu?

Ve nasıl üstesinden gelinir?


Geç kaldım, cevap muhtemelen, ama ben de benzer biriyle karşılaştım. Bu iyi değil :)

Benim için benzer günlük girişleri, iCustom() aracılığıyla özel bir gösterge çağırırken yanlışlıkla parametrelerden birini iletmeyi unutmamdan kaynaklandı. Derleyici, gösterge adı doğru ayarlandığından test sırasında bile bu hataları izlemez, ardından MT her şeyin başarıyla yüklendiğini yazar, ancak hiç kimse parametre sayısını kontrol etmez ve parametreler yanlış ayarlandığından bir hata oluşur. göstergede ve hemen boşaltılır. Testin yavaş yavaş geçmeye başladığını fark ettim ve günlükte sadece bir tane var:

01:11:13 20000.01.03 02:00  EMMA_Update_2 EURUSD,M15: başarıyla yüklendi

01:11:13 20000.01.03 02:00  EMMA_Update_2 EURUSD,M15: kaldırıldı

01:11:13 20000.01.03 02:01  EMMA_Update_2 EURUSD,M15: başarıyla yüklendi

01:11:13 20000.01.03 02:01  EMMA_Update_2 EURUSD,M15: kaldırıldı

Dikkatsizce böyle bir sorunu anlamaya ve bulmaya başladım, göstergeyi “hareket halindeyken” koymaya / çıkarmaya çalıştığım şablon hakkında, bununla ilgili günlükte herhangi bir “canlanma” görmedim, tüm sorun şuydu: iCustom () ile, her ihtimale karşı kontrol edin :)

 

ToLik_SRGV :

tüm sorun iCustom() ile ilgiliydi, bu yüzden her ihtimale karşı kontrol edin :)

her şey doğru. bu, yanlış sayıda argümandan kaynaklanmaktadır.
 

Bekleyen bir sipariş için son kullanma tarihinin nasıl belirleneceği konusunda tavsiye verin.

Her nasılsa benim için çalışmak istemiyor ve referans kitabı onu pek tanımlamıyor.

Mümkünse bir örnek.

Şimdiden teşekkürler.

 
ToLik_SRGV :

Geç kaldım, cevap muhtemelen, ama ben de benzer biriyle karşılaştım. Bu iyi değil :)

Benim için benzer günlük girişleri, iCustom() aracılığıyla özel bir gösterge çağırırken yanlışlıkla parametrelerden birini iletmeyi unutmamdan kaynaklandı. Derleyici, gösterge adı doğru ayarlandığından test sırasında bile bu hataları izlemez, ardından MT her şeyin başarıyla yüklendiğini yazar, ancak hiç kimse parametre sayısını kontrol etmez ve parametreler yanlış ayarlandığından bir hata oluşur. göstergede ve hemen boşaltılır. Testin yavaş yavaş geçmeye başladığını fark ettim ve günlükte sadece bir tane var:

01:11:13 20000.01.03 02:00 EMMA_Update_2 EURUSD,M15: başarıyla yüklendi

01:11:13 20000.01.03 02:00 EMMA_Update_2 EURUSD,M15: kaldırıldı

01:11:13 20000.01.03 02:01 EMMA_Update_2 EURUSD,M15: başarıyla yüklendi

01:11:13 20000.01.03 02:01 EMMA_Update_2 EURUSD,M15: kaldırıldı

Dikkatsizce böyle bir sorunu anlamaya ve bulmaya başladım, göstergeyi “hareket halindeyken” koymaya / çıkarmaya çalıştığım şablon hakkında, bununla ilgili günlükte herhangi bir “canlanma” görmedim, tüm sorun şuydu: iCustom () ile, her ihtimale karşı kontrol edin :)

Hayır, geç kalmadım... Aynen öyle, teşekkürler.
 
kwadrad :

Bekleyen bir sipariş için son kullanma tarihinin nasıl belirleneceği konusunda tavsiye verin.

Her nasılsa benim için çalışmak istemiyor ve referans kitabı onu pek tanımlamıyor.

Mümkünse bir örnek.

Şimdiden teşekkürler.

Burada. bu hoşuma gidiyor...

   double    tp,PriceOpn,PriceTake;
   string    sy= Symbol ();
   double pa=MarketInfo(sy, MODE_ASK);
   double pb=MarketInfo(sy, MODE_BID);
   double po=MarketInfo(sy, MODE_POINT);

   Magic= 511 ;
   Lots_New=NormalizeLot(Lots/ 2 , False, NULL );
         
   PriceOpn  = NormalizePrice(pa+DistORD*po, NULL );
   PriceTake = NormalizePrice(pa+(DistORD+tp)*po, NULL );
 //------------------------------------------------------------------
   SetOrder( NULL , OP_BUYSTOP, Lots_New, PriceOpn, 0 , PriceTake, Magic, TimeCurrent ()+ 12 * 60 ); // 12 часов срок его жизни...
 //------------------------------------------------------------------
//==============================================================================================

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 02.08.2008                                                     |
//|  Описание : Установка ордера.                                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    pp - цена                                                               |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - Magic Number                                                       |
//|    co - комментарий                                                        |
//|    ex - Срок истечения                                                     |
//+----------------------------------------------------------------------------+
void SetOrder( string sy, int op, double ll, double pp,
               double sl= 0 , double tp= 0 , int mn= 0 , string co= "" , datetime ex= 0 ) {
   color     cl=IIFc(op==OP_BUYLIMIT || op==OP_BUYSTOP, clOpenBuy, clOpenSell);
   datetime ot;
   double    pa, pb, mp;
   int       err, it, ticket, msl;

   if (sy== "" || sy== "0" ) sy= Symbol ();
  msl=MarketInfo(sy, MODE_STOPLEVEL);
   if (co== "" ) co=WindowExpertName()+ " " +GetNameTF( Period ());
   if (ex> 0 && ex< TimeCurrent ()) ex= 0 ;
   for (it= 1 ; it<=NumberOfTry; it++) {
     if (!IsTesting() && (!IsExpertEnabled() || IsStopped ())) {
       Print ( "SetOrder(): Остановка работы функции" );
       break ;
    }
     while (!IsTradeAllowed()) Sleep ( 5000 );
    RefreshRates();
    ot= TimeCurrent ();
    ticket= OrderSend (sy, op, ll, pp, Slippage, sl, tp, co, mn, ex, cl);
     if (ticket> 0 ) {
       if (UseSound) PlaySound (SoundSuccess); break ;
    } else {
      err= GetLastError ();
       if (err== 128 || err== 142 || err== 143 ) {
         Sleep ( 1000 * 66 );
         if (ExistOrders(sy, op, mn, ot)) {
           if (UseSound) PlaySound (SoundSuccess); break ;
        }
         Print ( "Error(" ,err, ") set order: " ,ErrorDescription(err), ", try " ,it);
         continue ;
      }
       if (UseSound) PlaySound (SoundError);
      mp=MarketInfo(sy, MODE_POINT);
      pa=MarketInfo(sy, MODE_ASK);
      pb=MarketInfo(sy, MODE_BID);
       if (pa== 0 && pb== 0 ) Message( "SetOrder(): Проверьте в обзоре рынка наличие символа " +sy);
       Print ( "Error(" ,err, ") set order: " ,ErrorDescription(err), ", try " ,it);
       Print ( "Ask=" ,pa, "  Bid=" ,pb, "  sy=" ,sy, "  ll=" ,ll, "  op=" ,GetNameOP(op),
             "  pp=" ,pp, "  sl=" ,sl, "  tp=" ,tp, "  mn=" ,mn);
       // Неправильные стопы
       if (err== 130 ) {
         // Корректировка ценовых уровней
         if (modeSetOrders== 1 ) {
           Sleep ( 1000 * 5.3 );
           switch (op) {
             case OP_BUYLIMIT:
               if (pp>pa-msl*mp) pp=pa-msl*mp;
               if (sl>pp-(msl+ 1 )*mp) sl=pp-(msl+ 1 )*mp;
               if (tp> 0 && tp<pp+(msl+ 1 )*mp) tp=pp+(msl+ 1 )*mp;
               break ;
             case OP_BUYSTOP:
               if (pp<pa+(msl+ 1 )*mp) pp=pa+(msl+ 1 )*mp;
               if (sl>pp-(msl+ 1 )*mp) sl=pp-(msl+ 1 )*mp;
               if (tp> 0 && tp<pp+(msl+ 1 )*mp) tp=pp+(msl+ 1 )*mp;
               break ;
             case OP_SELLLIMIT:
               if (pp<pb+msl*mp) pp=pb+msl*mp;
               if (sl> 0 && sl<pp+(msl+ 1 )*mp) sl=pp+(msl+ 1 )*mp;
               if (tp>pp-(msl+ 1 )*mp) tp=pp-(msl+ 1 )*mp;
               break ;
             case OP_SELLSTOP:
               if (pp>pb-msl*mp) pp=pb-msl*mp;
               if (sl> 0 && sl<pp+(msl+ 1 )*mp) sl=pp+(msl+ 1 )*mp;
               if (tp>pp-(msl+ 1 )*mp) tp=pp-(msl+ 1 )*mp;
               break ;
          }
           Print ( "SetOrder(): Скорректированы ценовые уровни" );
           continue ;
        }
         // Вход по текущим ценам
         if (modeSetOrders== 2 ) {
           Print ( "SetOrder(): Вход по текущим ценам" );
           if (op==OP_BUYLIMIT || op==OP_BUYSTOP) OpenPosition(sy, OP_BUY, ll, sl, tp, mn, co);
           if (op==OP_SELLLIMIT || op==OP_SELLSTOP) OpenPosition(sy, OP_SELL, ll, sl, tp, mn, co);
           break ;
        }
      }
       // Блокировка работы советника
       if (err== 2 || err== 64 || err== 65 || err== 133 ) {
        gbDisabled=True; break ;
      }
       // Длительная пауза
       if (err== 4 || err== 131 || err== 132 ) {
         Sleep ( 1000 * 300 ); break ;
      }
       // Слишком частые запросы (8) или слишком много запросов (141)
       if (err== 8 || err== 141 ) Sleep ( 1000 * 100 );
       if (err== 139 || err== 140 || err== 148 ) break ;
       // Ожидание освобождения подсистемы торговли
       if (err== 146 ) while (IsTradeContextBusy()) Sleep ( 1000 * 11 );
       // Обнуление даты истечения
       if (err== 147 ) {
        ex= 0 ; continue ;
      }
       if (err!= 135 && err!= 138 ) Sleep ( 1000 * 7.7 );
    }
  }
}
 
artmedia70 :

Burada. bu hoşuma gidiyor...




Oh teşekkürler.

Anlamalısın, açılıştan sonraki dakikalar bu mu?

 
kwadrad :


Oh teşekkürler.

Anlamak zorundasın, açılıştan sonraki dakikalar bu mu?

Evet, örnekte 12 saat kullanım ömrü... 12*60 dakika
 

OffTop gibi görünebileceğini anlıyorum, ancak benim için, yazma uzmanlarına yeni başlayan biri olarak (ve genel olarak programlamada, yirmi yıl önce Spectrum için assembler'da programlama deneyimini hesaba katmadan), sorum daha çok . ... oh iyi, sadece bir soru, sadece konuyla ilgili olacak:

Expert Advisor'ı iki yıllık bir geçmiş üzerinde test ederken, çok güçlü bir düşüşün olduğu aylar fark ettim. İşte eski zamanlayıcılar için bir soru: Bu tür dezavantajlarla başa çıkmanın hangi yöntemleri mevcut, sizce en etkili olanı ne tavsiye edilebilir.

Çan kulesinden şu ana kadar iki yöntem görüyorum:

1. Öz sermaye düşüşü belirli bir oranda daha yüksek olduğunda tüm ticareti dondurun ve
1.1 Her pozisyon için, başa baş noktasına gittikten sonra, bir takip eden stop bağlayın ve stop'u Ask/Bid'den küçük bir mesafeye sabitleyin, böylece küçük bir kar elde edin ve ardından stopları fiyatın arkasına çekerek yol boyunca pozisyonları kısmen kapatın ( fonları serbest bırakın) belirli sayıda kar puanına ulaştıktan sonra.
1.2 Öz sermayeyi belli bir oranda yükselttikten sonra yavaş yavaş ticarete başlayın...

2. Aksine, ana ticareti kapattıktan sonra, tamamlamayı yarım lotla, ancak çok sayıda emirle kesin, hatta kırılmadan sonra küçük bir son durak ile trendi kesinlikle takip edin.

Bence, ilk yöntem sizi öz sermayede daha güçlü bir düşüşten biraz koruyacak, ancak piyasa siparişleri yakalayana kadar çok uzun bir süre bekleyebilirsiniz,
ikinci yol marjı tüketecek, ancak kısa vadeli pozisyonlarla hızlı bir şekilde fonlara biraz ekleyin ...

Şimdiye kadar, sadece iki zıt yönlü yol görüyorum.

Ne tavsiye edersiniz yoldaşlarım??? Herhangi bir, hatta en, ilk bakışta, "çılgın-saçma" düşünce ve önerilere açığız ...

Şimdiden teşekkürler :)

 
Ve ne, test cihazı birkaç günden fazla test yapılmasına izin vermiyor mu?
 
artmedia70 :
Ve ne, test cihazı birkaç günden fazla test yapılmasına izin vermiyor mu?


S

Bankalararası piyasa için bir danışman mı hazırlıyorsunuz?