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

 
merkulov.artem :

Ders kitabından bilgi:

int ObjectGetShiftByValue ( dize adı, çift değer)
İşlev, belirtilen fiyat için çubuk numarasını (geçerli çubuğa göre ofset) hesaplar ve döndürür. Çubuk sayısı, birinci ve ikinci koordinatlar için doğrusal bir denklem kullanılarak hesaplanır. Trend çizgileri ve benzeri nesneler için kullanılır . Bir hata hakkında bilgi almak için GetLastError() işlevini çağırın.
Ayrıca bkz . ObjectGetValueByShift() .
Seçenekler:
isim - Nesnenin adı.
değer - Fiyat değeri.
Misal:

Soru:

Buradaki hata nerede, -1 numaralı mesaj barı veriyor (tarihteki ilk bar benim). Kılavuzda daha fazla bilgi bulamadım. Çubuk numarası fiyata göre nasıl bulunur?

Grafiğinizde "bar" adında bir trend çizgisi var mı? Böyle bir hattınız varsa, bu hattın belirttiğiniz fiyatın dışında olması oldukça olasıdır.
 
fmillion :
Döngünün başındaki zaman değişkeninin değeri nedir?

ГЛОБАЛЬНАЯ
int time = 0 ;                       // время - для определения факта работы только с последним закрытым ордером      
 
TarasBY :
Grafiğinizde "bar" adında bir trend çizgisi var mı? Böyle bir hattınız varsa, bu hattın belirttiğiniz fiyatın dışında olması oldukça olasıdır.

Teşekkürler, evet yanlış satır değerini belirtmişim. Şimdi sorunun ne olduğunu anlıyorum.

 
Zhunko :
Koş ve gör. Çok kullanışlı bir takım.

Daha sonra "köpek" ve onun arasındaki boşluklar aracılığıyla bazı sayıların görüntülendiğini görüyorum. Ama bu neden oluyor? Bu mql programlamadan bir şey değil mi? Bu C'de mi oluyor?

Bunu neden yaptığını gerçekten anlamadığım bir şey. Evet ve aynı zamanda mantıklı değil. "Köpek" aracılığıyla bazı seviyelerde fibo sayısını ve bazılarında başka bir şey görüyorum?

Görünüşlerinin nedenini açıklayabilir misiniz? çok ilgilenmeye başladım. Ama ikinci gün açtım baktım da girmedim.

Burada, tarihte aramamaları için komut dosyası kodunu çoğaltacağım:

 //+------------------------------------------------------------------+
//|                              Brooky_FibIt_Retracement_Script.mq4 |
//|                        Copyright 2012, www.Brooky_Indicators.com |
//|                                        www.Brooky_Indicators.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, www.Brooky_Indicators.com"
#property link       "www.Brooky_Indicators.com"
#property show_confirm  
#property show_inputs
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+

extern int        FibOnChartNum = 1 ;

extern color      Fib_Cbar_Color = Red ;
extern int        Fib_Cbar_Size= 1 ;
extern int        Fib_Cbar_Style= 2 ;

extern color      Fib_Level_Color = Gray ;
extern int        Fib_Level_Size= 1 ;
extern int        Fib_Level_Style= 2 ;

extern double      Fib_Level_1 = 0 ;
extern double      Fib_Level_2 = 0.236 ;
extern double      Fib_Level_3 = 0.382 ;
extern double      Fib_Level_4 = 0.5 ;
extern double      Fib_Level_5 = 0.618 ;
extern double      Fib_Level_6 = 0.764 ;
extern double      Fib_Level_7 = 1 ;

string Xtra_txtFib_Level_1  = "Extreme " ;
string Xtra_txtFib_Level_2  = "Break OUT " ;
string Xtra_txtFib_Level_3  = "Break IN " ;
string Xtra_txtFib_Level_4  = "Centre " ;
string Xtra_txtFib_Level_5  = "Break IN " ;
string Xtra_txtFib_Level_6  = "Break OUT " ;
string Xtra_txtFib_Level_7  = "Extreme " ;


string txtFib_Level_1  = "" ;
string txtFib_Level_2  = "" ;
string txtFib_Level_3  = "" ;
string txtFib_Level_4  = "" ;
string txtFib_Level_5  = "" ;
string txtFib_Level_6  = "" ;
string txtFib_Level_7  = "" ;


string FibPrice = " @ %$" ;
string FibPrice1 = " " ;
string FibName = "" ;

int start()
  {

//----
      txtFib_Level_1 = StringConcatenate (Xtra_txtFib_Level_1, DoubleToStr (Fib_Level_1, 3 ),FibPrice1);
      txtFib_Level_2 = StringConcatenate (Xtra_txtFib_Level_2, DoubleToStr (Fib_Level_2, 3 ),FibPrice);
      txtFib_Level_3 = StringConcatenate (Xtra_txtFib_Level_3, DoubleToStr (Fib_Level_3, 3 ),FibPrice1);
      txtFib_Level_4 = StringConcatenate (Xtra_txtFib_Level_4, DoubleToStr (Fib_Level_4, 3 ),FibPrice);
      txtFib_Level_5 = StringConcatenate (Xtra_txtFib_Level_5, DoubleToStr (Fib_Level_5, 3 ),FibPrice1);
      txtFib_Level_6 = StringConcatenate (Xtra_txtFib_Level_6, DoubleToStr (Fib_Level_6, 3 ),FibPrice);
      txtFib_Level_7 = StringConcatenate (Xtra_txtFib_Level_7, DoubleToStr (Fib_Level_7, 3 ),FibPrice);
      
      
      
      FibName = "Brooky_FibR_" +FibOnChartNum;
       ObjectDelete (FibName);
      
       ObjectCreate (FibName, OBJ_FIBO , 0 ,Time[ 21 ],High[ 24 ],Time[ 1 ],Low[ 1 ]);
      
       ObjectSet (FibName, OBJPROP_COLOR ,Fib_Cbar_Color);
       ObjectSet (FibName, OBJPROP_WIDTH ,Fib_Cbar_Size);
       ObjectSet (FibName, OBJPROP_STYLE ,Fib_Cbar_Style);
      
       ObjectSet (FibName, OBJPROP_RAY,True);
       
       ObjectSet (FibName, OBJPROP_LEVELSTYLE ,Fib_Level_Style);
       ObjectSet (FibName, OBJPROP_LEVELCOLOR ,Fib_Level_Color);      
       ObjectSet (FibName, OBJPROP_LEVELWIDTH ,Fib_Level_Size);  
       
          
       ObjectSet (FibName, OBJPROP_FIBOLEVELS, 7 );
       ObjectSet (FibName, OBJPROP_FIRSTLEVEL+ 0 ,Fib_Level_1);
       ObjectSet (FibName, OBJPROP_FIRSTLEVEL+ 1 ,Fib_Level_2);
       ObjectSet (FibName, OBJPROP_FIRSTLEVEL+ 2 ,Fib_Level_3);
       ObjectSet (FibName, OBJPROP_FIRSTLEVEL+ 3 ,Fib_Level_4);
       ObjectSet (FibName, OBJPROP_FIRSTLEVEL+ 4 ,Fib_Level_5);
       ObjectSet (FibName, OBJPROP_FIRSTLEVEL+ 5 ,Fib_Level_6);
       ObjectSet (FibName, OBJPROP_FIRSTLEVEL+ 6 ,Fib_Level_7);
      

     
       ObjectSetFiboDescription (FibName, 0 ,txtFib_Level_1);
       ObjectSetFiboDescription (FibName, 1 ,txtFib_Level_2);
       ObjectSetFiboDescription (FibName, 2 ,txtFib_Level_3);
       ObjectSetFiboDescription (FibName, 3 ,txtFib_Level_4);
       ObjectSetFiboDescription (FibName, 4 ,txtFib_Level_5);
       ObjectSetFiboDescription (FibName, 5 ,txtFib_Level_6);
       ObjectSetFiboDescription (FibName, 6 ,txtFib_Level_7);      
      
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 

Arkadaşlar basit bir problemle karşılaştım fakat bir türlü çözemedim. Konu şu. Belirli koşullar sağlandığında bir anlaşma açılır (buna öncü anlaşma diyelim). Ve sonraki 3 bar boyunca bu koşul tekrarlanırsa, başka bir ticaret (tekrarlanır) açılır. Sonraki üç çubuk sırasında ihtiyacım olan koşul işe yaramazsa, o zaman ikinci bir ticaret, bir sonraki ana ticaret tekrar açılana kadar açılmamalıdır. Vb. Nedense, bir yeniden ticaret benim için yalnızca bir kez açılır (tüm koşullar ilk kez karşılandığında, açılır, ancak gelecekte, yeni bir ticaretten sonra yeniden ticaret açmak için bir koşul oluştuğunda açılır). lider anlaşma, artık açılmıyor). Bana yardım et lütfen.

 //условие открытия повторной сделки
for (povtor_up= 1 ;povtor_up< 4 ;povtor_up++)
if ((povtor_buy== 1 ) && (adx_cont== 1 )&&(sb== 1 ))
{
  CL = iClose ( NULL , 0 , 1 );
  stop = CL - SLP* Point ;
  raz_up = (CL - frac_down);
  take_1 = 0 ;
  take_2 = 0 ;
   if (CL<(frac_up-FR_OVER* Point ))
  take_1 = (CL + raz_up*MNP_1);
   if (CL>=(frac_up-FR_OVER* Point ))
  take_2 = (CL + raz_up*MNP_2);
   if (take_1> 0 )
  {
  take_1n = NormalizeDouble (take_1, 5 );
  take = take_1n;
  }
   if (take_2> 0 )
  {
  take_2n = NormalizeDouble (take_2, 5 );
  take = take_2n;
  }

     if (! IsTradeAllowed ())
      {
       Alert ( "занят торговый поток, повторим попытку buy" );
       return (- 1 );
      }
  ticket_buy_cont= OrderSend ( Symbol (),OP_BUY,Lots,Ask,Slippage,stop,take,com,Magic, 0 , Yellow );
     if (ticket_buy_cont == - 1 )
    {
     Alert ( Symbol (), "ошибка:buy" , GetLastError ());
     return (- 1 );
    }
     if (ticket_buy_cont > 1 )
    { Alert ( Symbol (), "buy повтор - ок !" );
    povtor_buy= 0 ;
    povtor_up= 0 ;
    }

}
else 
    povtor_buy= 0 ;
    povtor_up= 0 ;


//условие открытия ведущей сделки
if ((adx_ts== 1 ) && (sb== 1 ) && (FLAG== 0 ))
{
  CL = iClose ( NULL , 0 , 1 );
  stop = CL - SL* Point ;
  raz_up = (CL - frac_down);
  take_1 = 0 ;
  take_2 = 0 ;
   if (CL<(frac_up-FR_OVER* Point ))
  take_1 = (CL + raz_up*MN_1);
   if (CL>=(frac_up-FR_OVER* Point ))
  take_2 = (CL + raz_up*MN_2);
   if (take_1> 0 )
  {
  take_1n = NormalizeDouble (take_1, 5 );
  take = take_1n;
  }
   if (take_2> 0 )
  {
  take_2n = NormalizeDouble (take_2, 5 );
  take = take_2n;
  }

     if (! IsTradeAllowed ())
      {
       Alert ( "занят торговый поток, повторим попытку buy" );
       return (- 1 );
      }
  ticket_buy= OrderSend ( Symbol (),OP_BUY,Lots,Ask,Slippage,stop,take,com,Magic, 0 , Yellow );
     if (ticket_buy == - 1 )
    {
     Alert ( Symbol (), "ошибка:buy" , GetLastError ());
     return (- 1 );
    }
     if (ticket_buy > 1 )
    { Alert ( Symbol (), "buy при начале - ок !" );
    FLAG= 1 ;
    povtor_up= 1 ;
    povtor_buy= 1 ;
    }

}
 
Big_Bo :

Arkadaşlar basit bir problemle karşılaştım fakat bir türlü çözemedim. Konu şu. Belirli koşullar sağlandığında bir anlaşma açılır (buna öncü anlaşma diyelim). Ve sonraki 3 bar boyunca bu koşul tekrarlanırsa, başka bir ticaret (tekrarlanır) açılır. Sonraki üç çubuk sırasında ihtiyacım olan koşul işe yaramazsa, o zaman ikinci bir ticaret, bir sonraki ana ticaret tekrar açılana kadar açılmamalıdır. Vb. Nedense, bir yeniden ticaret benim için yalnızca bir kez açılır (tüm koşullar ilk kez karşılandığında, açılır, ancak gelecekte, yeni bir ticaretten sonra yeniden ticaret açmak için bir koşul oluştuğunda açılır). lider anlaşma, artık açılmıyor). Bana yardım et lütfen.

Uzman Danışmanın çalışma sırasında (elbette bir testçi olmadığı sürece) yeniden yüklenebileceğini unutmayın (veya alışın - istediğiniz gibi), bu, bayrakların değerlerinin, başlatmadan kaldırma sırasında bir yere yazılmaz ve başlatma sırasında geri yüklenmez. Siparişlerinizin bir "kayıtını" tutmak daha kolaydır. Emirler arasında farklılıklar varsa (bu durumda lider ve takipçi), o zaman farklı Büyülerle veya yorumlara yazılarak ayırt edilebilirler veya 1. sıranın varlığından sonra ikinci köle açılır (kalbiniz gibi) arzular).

Kodu kullanıcı tanımlı işlevlere ayırın - bu şekilde okunması ve algılanması daha kolaydır: açma için ayrı koşullar (sinyal alma), ayrı ayrı STOP alma, ayrı açma emirleri. Bu döngünün anlamı tamamen anlaşılmaz:

     for (povtor_up = 1 ; povtor_up < 4 ; povtor_up++)

bahsi geçen kontrol buysa: "sonraki 3 barda" - o zaman bu hayatta bir şeyi kaçırdım...

İlk "öncü" siparişin açılış saatine sahipsiniz - ondan ve "dans".

 

Danışmanların sorunsuz çalışmasını sağlamak için lütfen durumun nasıl çözüleceğine yardımcı olun veya öneride bulunun. Durum aşağıdaki gibidir:

1. 36 danışmanın TF D1'de 21 enstrüman üzerinde çalıştığı gerçek bir mikro hesap başlatıldı - bunlar işlem haftasının günü boyunca kapanmazlar;

2. Ayrı demo hesaplarında başlatılan 58 Uzman Danışman, D1'de de, günlük 00-00 DC sunucu saatinden başlayarak, alım satım kararları verdikten sonra 1-3 dakika içinde dönüşümlü olarak "canlandırılarak" kapatılmaya zorlanır. gece yarısından sonra çok fazla zaman ve sinirler;

3. TF H4'te kalıcı olarak çalışan bir demo hesap açıldı.

Soru: Uzman Danışmanlar madde 2'ye göre de kalıcı olarak nasıl çalıştırılır , şimdi bilgisayarda bunu yapmak için yeterli sanal bellek yok. Ne yapmalı: RAM'i artırın, bilgisayarı değiştirin. çift çekirdekli mi yoksa daha güçlü bir dizüstü bilgisayar mı arıyorsunuz? Ya da belki başka bir organizasyon veya program çözümü var mı?

 
yosuf :

Danışmanların sorunsuz çalışmasını sağlamak için lütfen durumun nasıl çözüleceğine yardımcı olun veya öneride bulunun. Durum aşağıdaki gibidir:

1. 36 danışmanın TF D1'de 21 enstrüman üzerinde çalıştığı gerçek bir mikro hesap başlatıldı - bunlar işlem haftasının günü boyunca kapanmazlar;

2. Ayrı demo hesaplarında başlatılan 58 Uzman Danışman, D1'de de, günlük 00-00 DC sunucu saatinden başlayarak, alım satım kararları verdikten sonra 1-3 dakika içinde dönüşümlü olarak "canlandırılarak" kapatılmaya zorlanır. gece yarısından sonra çok fazla zaman ve sinirler;

3. TF H4'te kalıcı olarak çalışan bir demo hesabı açıldı.

Soru: Uzman Danışmanlar madde 2'ye göre de kalıcı olarak nasıl çalıştırılır, şimdi bilgisayarda bunu yapmak için yeterli sanal bellek yok. Ne yapmalı: RAM'i artırın, bilgisayarı değiştirin. çift çekirdekli mi yoksa daha güçlü bir dizüstü bilgisayar mı arıyorsunuz? Ya da belki başka bir organizasyon veya program çözümü var mı?

2. madde canlanma konusunda çok net değil mi? Onlara suni teneffüs yapıldığını ya da amonyağın zorlandığını söylersiniz.

RAM'i artırmak, gerektiğinde kullandığım en ucuz ve en etkili yöntemdir. Daha fazla RAM, her şey daha hızlı hareket eder. Eh, demirin geri kalanının yükseltilmesi, eğer eski artık alıntılanmıyorsa. Bir bilgisayarda bu kadar çok görev için iki çekirdek yeterli olmayacaktır.

 
yosuf :

Danışmanların sorunsuz çalışmasını sağlamak için lütfen durumun nasıl çözüleceğine yardımcı olun veya öneride bulunun. Durum aşağıdaki gibidir:

1. 36 danışmanın TF D1'de 21 enstrüman üzerinde çalıştığı gerçek bir mikro hesap başlatıldı - bunlar işlem haftasının günü boyunca kapanmazlar;

2. Ayrı demo hesaplarında başlatılan 58 Uzman Danışman, D1'de de, günlük 00-00 DC sunucu saatinden başlayarak, alım satım kararları verdikten sonra 1-3 dakika içinde dönüşümlü olarak "canlandırılarak" kapatılmaya zorlanır. gece yarısından sonra çok fazla zaman ve sinirler;

3. TF H4'te kalıcı olarak çalışan bir demo hesap açıldı.

Soru: Uzman Danışmanlar madde 2'ye göre de kalıcı olarak nasıl çalıştırılır, şimdi bilgisayarda bunu yapmak için yeterli sanal bellek yok. Ne yapmalı: RAM'i artırın, bilgisayarı değiştirin. çift çekirdekli mi yoksa daha güçlü bir dizüstü bilgisayar mı arıyorsunuz? Ya da belki başka bir organizasyon veya program çözümü var mı?

Diğer bir organizasyonel çözüm ise VPS'dir (Sanal Özel Sunucu).

Başka bir yazılım çözümü (aynı danışman farklı çiftlerdeyse), danışmanınızdan çoklu para birimi oluşturmaktır.

 
Reshetov :

2. madde canlanma konusunda çok net değil mi? Onlara suni teneffüs yapıldığını ya da amonyağın zorlandığını söylersiniz.

RAM'i artırmak, gerektiğinde kullandığım en ucuz ve en etkili yöntemdir. Daha fazla RAM, her şey daha hızlı hareket eder. Eh, demirin geri kalanının yükseltilmesi, eğer eski artık alıntılanmıyorsa.

Bu, sırayla 1-3 dakika açıldığı, ardından 1 gün boyunca tekrar kapatıldığı anlamına gelir. Onları hemen açarsanız. örneğin, 10'dan fazla parça, komp. bozulmaya başlar ve bir veya iki parçadan fazla zaman kaybedilir. Teşekkürler, RAM'i artırmaya çalışacağım, ancak ne kadar artırılması gerektiğini bilmem gerekiyor? Veya deneme yanılma yoluyla ilerlemek mi?