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

 
Zhunko :

Kenelerden oluşması gerekir. Dönem dönüştürücü en az dakika yapar.


Kovalev haklı. Sahip olmadığınız şeyleri kırmızıyla vurgulayın.

Anladım çok teşekkür ederim
 
MauzerVII :

İnsanlar bana söyle

neden çizgi anlamadım

Sonuç: 2013.04.12 17         13 Print_v4 EURUSD,M15: SL == 1.3068

dört ondalık basamak verir???  

profesyonel   DoubleToStr - Farkındayım.



Sorunun ne olduğunu öğrendikten sonra, net değil.

 

Kod tabanındaki kene toplayıcı kodu hakkında soru. Başlıkta atanan ve kodda daha fazla değişmeyen boole değişkenlerinin koşullarının garip bir kontrolü. Nasıl çalıştığını anlamıyorum.

 //в шапке
           bool tick.time.local        =               false ;
           bool tick.chart.update      =                 true ;
//в init()
   if (tick.chart.update == true )
     {
     if (MT4InternalMsg == 0 )  
            {
            MT4InternalMsg = RegisterWindowMessageA( "MetaTrader4_Internal_Message" ); 
            }   
     }  
//в start()
     if (tick.time.local == true )//где менялось, я вообще не понял
       {
       time = TimeLocal ();
       }
       else {
       time = TimeCurrent ();
       }
//--------------------------------
       if (tick.chart.update == true )
         {
                   hwnd = WindowHandle(sn, 1 );
         if (PostMessageA(hwnd, WM_COMMAND, 0x822c , 0 ) == false )
           {
           hwnd = 0 ;
           return ;
           }
           PostMessageA(hwnd, MT4InternalMsg, 2 , 1 );             
           }                 
         } 

Atanan Boole değişkenlerinin değeri, koşullarda (ve kodun devamında) hiçbir yerde değişmez. Ayrıca start()'ta genellikle atanan değişkenin ters değeri için kontrol edilir. Ama işe yarıyor. Nasıl?

 

Yoksa sadece optimize edilmemiş kod mu? Başlık, bir GetLastError() değişikliği bildiriyor

 #import "ntdll.dll"
 int RtlGetLastWin32Error();
 int RtlSetLastWin32Error ( int dwErrCode);

ve bu NaiveAPI işlevleri kodun başka hiçbir yerinde kullanılmaz...

 

Programcılar yoldaşlar, bana "basit" bir sorunu nasıl çözeceğimi söyleyin.

Örneğin, CSV dosyasındaki ikinci satırı silmeniz gerekir. Bunun nasıl yapılacağına dair belgelerde herhangi bir bilgi bulamadım.

misal:

12:30;1;1.34818;12:32;3;3;100;1.34939;18:45\r\n

14:00;1;1.32219;14:26;6;6;100;0,00000;00:00\r\n

19:00;0;1.35828;19:12;12;6;600;1.37939;19:59\r\n

 
tuner :


Yardım ederdim ama başka bir şey düşünmeye vakit yok, üzgünüm.

Nerede değiştirileceği sorusuna gelince. Benim varsayımım, programcının göstergeyi yazarken kullandığı ve birinin ihtiyacı varsa hata ayıklama için kodda bıraktığı hata ayıklama bayraklarıdır.

 

Konu basit. Hızlı olan yavaş olanı geçer. Ayrıca, fiyat hızlı harekete geri döner ve ardından uzmanın bir emir açması gerekir.

Şimdilik, şöyle bir geri alma işleme işlevi yazdım:

 //+-------------------------------------------------------------------------------------+
//| Получение значений МА на указанном баре                                             |
//+-------------------------------------------------------------------------------------+
double GetMA( int index, int maPeriod)
{
   return ( iMA ( NULL , i_TF, maPeriod, 0 , MODE_EMA , MODE_CLOSE, index));
}
//+-------------------------------------------------------------------------------------+
//| Имеет ли место отскок?                                                              |
//+-------------------------------------------------------------------------------------+
void IsRebound( int crossDir[], bool & returnSign[])
{
   for ( int i = 0 ; i < 4 ; i++)
   {
       if (crossDir[i] == CROSS_NO)
         continue ;

      returnSign[i] = false ;
       double ema = GetMA( 1 , g_maPeriod[i]);

       if (crossDir[i] == CROSS_UP)
      {
         if (ND( MathAbs (ema - Ask)) <= i_thresholdFromMa * pt) // ..зазор между ценой покупки и машки, <= i_thresholdFromMa..
         {
            returnSign[i] = true ;
             Alert ( "CROSS_UP" );
         }
      }
       if (crossDir[i] == CROSS_DN)
      {
         if (ND( MathAbs (ema - Bid)) <= i_thresholdFromMa * pt) // ..зазор между ценой покупки и машки, <= i_thresholdFromMa..
         {
            returnSign[i] = true ;
             Alert ( "CROSS_DN" );
         }
      }
   }
}

Söyle bana doğru mu? Yoksa başka bir şeye mi ihtiyacınız var?

crossDir[] dizisi, bir kesişimin varlığı ile ilgili değerleri saklar, eğer varsa, mevcut alış veya satış fiyatı ile kene değeri arasındaki boşluk kontrol edilir. Nedense, koşul hiç karşılanmıyor.

İhtiyacım olan şey bu:

geri alma

365'inci arabayı herhangi bir araba ile geçtikten sonra ve fiyat 365'i geçen ilgili arabaya geri döner dönmez satın almanız gerekir. NASIL YAYINLANIR?

 

İstediğiniz şeyin bir tür mantıksal diyagramını çizmeniz gerekir. Kendin için.

PS Bir yıl yaklaşık 250 günlük çubuktan oluşur.

 
Bunu kimse uygulamadı mı? Çok zor olduğunu düşünmüyorum. Henüz çok deneyimim yok, bu anı nasıl resmileştireceğimi tam olarak anlamıyorum ...
 
hoz :
Bunu kimse uygulamadı mı? Çok zor olduğunu düşünmüyorum. Henüz çok deneyimim yok, bu anı nasıl resmileştireceğimi tam olarak anlamıyorum ...

Blok diyagram olabilir. Hala bir şekilde yapabilirsiniz, ancak çok aşındırıcı ve net. Böylece fikrin açıklamasıyla tutarsızlığından dolayı sizi tekmeleme fırsatım olmuyor.

Not: Bunu yapmayacağım.