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

 
Andrew1001 :

İyi! Ve o zaman kodu görmek, değiştirmek mümkün olacak şekilde nasıl düzenleyebilirim?
Danışmanın yazarından kaynak kodunu isteyin ve izniyle yayınlayın.
 
nlp2311 :

Önerdiğiniz için TEŞEKKÜRLER:

Mumlar kadar güzel görünmüyor. Ancak mumlarla çizebilirsiniz, ancak bu bir yaygara ve pratik olarak pratik değildir.

Benim için ticaret haftası başlıyor ve şimdilik üzgünüm, artık foruma yazıp cevap vermeyeceğim. Kendimizi eğitelim.

Her ne kadar düşündüğünüzü programlı olarak kolayca yazabilmek için çok fazla deneyim gerekiyor. Genellikle 1-3 yıl.

 
Dimka-novitsek :

Tünaydın! Lütfen bana nasıl doğru yazacağımı söyle

Mesele şu ki, ObjectSetText muhtemelen hiçbir şey yapmıyor, imza üstü yerine bir yazıt metni alıyorum.


GetLastError() içinde neler var?
 
Ofc ukzye! Çok çabuk göreceğim!!
 
Dört bin iki yüz. Evet, sonunda işe yaradı! Bunun gibi
 ObjectCreate ( "вершина" ,   OBJ_TEXT , WindowOnDropped ( ) , Time[бар_вершина],  вершина+( 10 * Point )) ; 
     ObjectSetText ( "вершина" , "вершина" , 5 , "вершина" , Crimson ) ; Alert ( "GetLastError()" , GetLastError ());
       // ObjectSet(  "вершина",  OBJPROP_COLOR, Crimson) ;
 
Biliyorsun, göstergeyi aklıma getiremiyorum. Şu anda resim yapmıyor. Bazen çiziyor, bazen çekmiyor ve şu anda çizmiyor. Üstelik hiçbir düzenlilik yok - ona grafik nesneler ekledim. Ve çizmiyor!
 //+------------------------------------------------------------------+
//|                                            ИндюкДимонакомпил.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"
#import "user32.dll"
   int    PostMessageA( int   hWnd, int   Msg, int   wParam, string lParam);
#import
#define WM_COMMAND                     0x0111
int delimiter = 0 ;

#property indicator_chart_window

#property indicator_buffers 3
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 DarkBlue
double ВерхняячертаBuffer1[];
double НижняячертаBuffer2[];
double СинняячертаBuffer3[];
 double вершина; 
 double основание_первого_снижения;
 double начало;
 double вершина_волны_3;
 extern int T= 4 ,K= 200 ;
 int timeframe, start ;
 int бар_вершина ;
 int бар_основание_первого_снижения;
 int бар_начало;
int pereklutsatel;
double naklon,linija2; int P; extern int RO=- 1 ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators

SetIndexStyle ( 0 , DRAW_SECTION , STYLE_SOLID , 2 , CLR_NONE ); //Alert ("SetIndexStyle ",GetLastError( ) );
   SetIndexBuffer ( 0 ,ВерхняячертаBuffer1); //Alert ("SetIndexBuffer ",GetLastError( ) );
   SetIndexEmptyValue ( 0 , 0.0 );
   
   SetIndexStyle ( 1 , DRAW_SECTION , STYLE_SOLID , 2 , CLR_NONE ); //Alert ("SetIndexStyle ",GetLastError( ) );
   SetIndexBuffer ( 1 ,НижняячертаBuffer2); //Alert ("SetIndexBuffer ",GetLastError( ) ); 
   SetIndexEmptyValue ( 1 , 0.0 );
   
   SetIndexStyle ( 2 , DRAW_SECTION , STYLE_SOLID ,T, CLR_NONE ); //Alert ("SetIndexStyle ",GetLastError( ) );
   SetIndexBuffer ( 2 ,СинняячертаBuffer3); //Alert ("SetIndexBuffer ",GetLastError( ) ); 
   SetIndexEmptyValue ( 2 , 0.0 );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete ( "вершина" );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int     counted_bars= IndicatorCounted ();
   int limit= Bars -counted_bars- 1 ;

   for ( int i=limit;i>= 0 ;i--) {
//----
 for ( int J= 0 ;J<=RO;J++){
//----

   // for(int i=Bars; i>=0;i--)
   i= Bars ;
      бар_вершина= iHighest ( NULL ,  timeframe, MODE_HIGH, K, start ) ;
       вершина =High[ бар_вершина ];
       бар_основание_первого_снижения= iLowest ( NULL ,  timeframe, MODE_LOW, NormalizeDouble ( бар_вершина/ 2 , 0 ), start ) ;
       основание_первого_снижения=Low[ бар_основание_первого_снижения ];
       бар_начало= iLowest ( NULL ,  timeframe, MODE_LOW, NormalizeDouble (бар_вершина* 1.5 , 0 ), бар_вершина ) ;
       начало=Low[ бар_начало ];
       
   ObjectCreate ( "вершина" ,   OBJ_TEXT , WindowOnDropped ( ) , Time[бар_вершина],  вершина+( 10 * Point )) ; 
     ObjectSetText ( "вершина" , "вершина" , 5 , "вершина" , Crimson ) ; Alert ( "GetLastError()" , GetLastError ());
       // ObjectSet(  "вершина",  OBJPROP_COLOR, Crimson) ;
      
   ObjectCreate ( "основание_первого_снижения" ,   OBJ_TEXT , WindowOnDropped ( ) , Time[бар_основание_первого_снижения],  основание_первого_снижения-( 10 * Point )) ; 
     ObjectSetText ( "основание_первого_снижения" , "основание_первого_снижения" , 5 , "основание_первого_снижения" , Crimson ) ;   
   
     ObjectCreate ( "начало" ,   OBJ_TEXT , WindowOnDropped ( ) , Time[бар_начало],  начало-( 10 * Point )) ; 
     ObjectSetText ( "начало" , "начало" , 5 , "начало" , Crimson ) ;   
           
   if (начало>основание_первого_снижения){naklon=(начало-основание_первого_снижения)/(бар_начало-бар_основание_первого_снижения);
   Alert ( "naklon  " , naklon);
    НижняячертаBuffer2[бар_начало]=начало;linija2=начало; for (i=бар_начало- 1 ;i>= 0 ;i--){linija2=linija2-naklon;
   
    НижняячертаBuffer2[i]=linija2;   Alert ( "linija2  " , linija2 );   Alert ( "НижняячертаBuffer2[i]  " , НижняячертаBuffer2[i] , "  i " , i);
     
   }
    НижняячертаBuffer2[бар_основание_первого_снижения]=основание_первого_снижения;}
    
    
         for (i= 0 ;i< 100 ;i++){  СинняячертаBuffer3[i]= Open[i];}
           for (i= 330 ;i< 500 ;i++){  СинняячертаBuffer3[i]= Open[i];}

     ВерхняячертаBuffer1[бар_начало]=начало;
     
 double точка 4 ; int бар_точка 4 ;   бар_точка 4 = iHighest ( NULL ,  timeframe, MODE_HIGH, бар_основание_первого_снижения, 3 ) ; 
  точка 4 =High[ бар_точка 4 ];  
   
   if (вершина>точка 4 ){naklon=(начало-точка 4 )/(бар_начало-бар_точка 4 );
   ObjectCreate ( "точка4" ,   OBJ_TEXT , WindowOnDropped ( ) , Time[бар_точка 4 ],  точка 4 +( 10 * Point )) ; 
     ObjectSetText ( "точка4" , "точка4" , 5 , "точка4" , Crimson ) ;  
   double linija1=начало; for (i=бар_начало- 1 ;i>= 0 ;i--){linija1=linija1-naklon;ВерхняячертаBuffer1[i]=linija1; }}
   
double vulf=НижняячертаBuffer2[ 0 ];
   if ( vulf==Ask&&vulf==Bid)vulf= 1 ;
   else { for (vulf=vulf+ Point * 10 ; vulf==НижняячертаBuffer2[ 0 ];vulf=vulf- Point ){
           if ( vulf==Ask&&vulf==Bid){vulf= 1 ;}} 
       for (vulf=vulf- Point * 10 ; vulf==НижняячертаBuffer2[ 0 ];vulf=vulf+ Point ){
           if ( vulf==Ask&&vulf==Bid)vulf= 1 ;} 
              
           
           
           }
           
           
   if (vulf== 1 ){ Comment ( "  Есть вульв!!! "   , "  timeframe " , timeframe); return ( 0 );  }
     if (vulf!= 1 &&pereklutsatel== 1 ) {    
   
     if (delimiter< 3 ){delimiter++; Comment (delimiter); return ( 0 );}
   delimiter= 0 ;
    fChangePeriod();P++;
                                 
                   }  } }
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

void fChangePeriod(){ int ii,hwd = WindowHandle ( Symbol (), Period ());
   switch ( Period ()){
       case PERIOD_W1     : ii = 33134 ; break ; //PERIOD_D1;
       case PERIOD_D1     : ii = 33136 ; break ; //PERIOD_H4;
       case PERIOD_H4     : ii = 33135 ; break ; //PERIOD_H1;
       case PERIOD_H1     : ii = 33140 ; break ; //PERIOD_M30;
       case PERIOD_M30    : ii = 33139 ; break ; //PERIOD_M15;
       case PERIOD_M15    : ii = 33138 ; break ; //PERIOD_M5;
       case PERIOD_M5     : ii = 33137 ; break ; //PERIOD_M1;
       case PERIOD_M1     : ii = 33141 ; break ; //PERIOD_W1;
   }     
   PostMessageA(hwd, WM_COMMAND, ii, 0 );
   return ;
}
 
Çok fazla kod var, çok üzgünüm ama muhtemelen bir tür temel sorun var!
 

Hey !!!!

Bana başlangıç tarihini nasıl değiştireceğimi söyleme - böylece metin biçiminde belirtilen tarihten değil, mevcut tarihten belirli bir gün sayısından daha az bir tarihten başlasın mı?

Onlar. vardiyayı geri ayarlayın (örneğin 3 gün) ve o günün 00=00h'sinden hesaplanır.


harici tarihsaat TimeStart = D'2012.07.01 00:00'; // Analiz başlangıç zamanı

 
Her gün her çizelgede manuel olarak yer değiştirmekten bıktım...)
 
Dimka-novitsek :
Çok fazla kod var, çok üzgünüm ama muhtemelen bir tür temel sorun var!

Hataları bulmak için yaklaşık olarak böyle bir algoritma:

1. Özellikle sol çubuktaki göstergeyi yeniden hesaplarken, tüm nesnelerin benzersiz adlarla oluşturulduğundan emin olun.

2. Grafikte oluşturulan nesnelerin listesini görüntüleyin ve özelliklerine bakın - zaman ve fiyatın her yerde doğru yazılıp yazılmadığını: genellikle yanlış şey koordinatlara girer.

3.??? şimdilik yeterli, ilk iki nokta yardımcı olmadıysa, daha fazla düşüneceğiz))