[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 278

 
skyjet :

알려주십시오. 조건이 충족되면 표시기가 화살표를 그립니다. 열림 조건에서 이러한 화살표의 모양을 나타내는 방법은 무엇입니까? 지표를 Expert Advisor로 옮겼기 때문에!

잘못 전송되었습니다. EA는 버퍼 표시기로 작업하는 방법을 모릅니다. 그래픽 개체로 바꾸거나 iCustom을 사용해야 합니다.
 

그건 그렇고, 프로그램에서 그래픽 개체를 만들 때 fibo 수준 설명자를 설정하는 방법을 아는 사람이 있습니까?

글쎄, 또는 적어도이 차트에서 수정 사항을 제거하십시오.


 
int deinit()
  {
//----
   ObjectDelete ( "вершина" );
   ObjectDelete ( "основание_первого_снижения  " );
   ObjectDelete ( "начало" );
     ObjectDelete ( "точка4" );
     ObjectDelete ( "пятая_точка!" );
//----
   return ( 0 );
안녕하세요! 모든 개체의 청소를 작성하는 방법은 무엇입니까? 그러다가 한 번씩 제거되고, 그 다음엔 덜 .. 이렇게 청소를 하는 동안.
 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 );
   
   
   ObjectDelete ( "вершина" );
   ObjectDelete ( "основание_первого_снижения  " );
   ObjectDelete ( "начало" );
     ObjectDelete ( "точка4" );
     ObjectDelete ( "пятая_точка!" );
//----
   return ( 0 );
 
Dimka-novitsek :
안녕하세요! 모든 개체의 청소를 작성하는 방법은 무엇입니까? 그러다가 한 번씩 제거되고, 그 다음엔 덜 .. 이렇게 청소하는 동안.
개체모두 삭제
 

감사해요!!!!!!

공장!!!!

 

안녕하세요!

그런 것이 있다면 아파트를 결정하는 확실한 방법을 알려주십시오.

[Deleted]  
동료들에게! 이 질문이 여기에 관련이 있기를 바랍니다. 가장 간단한 프로그램은 하나의 주문이 열리고(예: Sell), 얼마 후 수정되고( open price , SL, TP는 변경됨) 일정 시간이 지나면 닫힐 것입니다(예: 결과) ..? 나는 그것을 스스로 이해할 수 없습니다. 내가 본 것은 정렬 순서와 온갖 종류의 쓰레기 출력이 있는 두뇌를 깨는 코드뿐입니다 ...
 
evillive :

안녕하세요!

그런 것이 있다면 아파트를 결정하는 확실한 방법을 알려주십시오.


한 시간대의 추세는 다른 시간대에서는 쉽게 평평해질 수 있습니다. 예를 들어 이동 평균을 선택할 수 있습니다. 횡보이면 추세가 횡보입니다.
 
AlexLaptist :
동료들에게! 이 질문이 여기에 관련이 있기를 바랍니다. 가장 간단한 프로그램은 하나의 주문이 개설되고(예: Sell), 얼마 후 수정되고(오픈 가격, SL, TP가 변경됨) 일정 시간이 지나면 닫힐 것입니다(예: 결과) ..? 나는 그것을 스스로 이해할 수 없습니다. 내가 본 것은 정렬 순서와 온갖 종류의 쓰레기 출력이 있는 두뇌를 깨는 코드뿐입니다...


여기 봤어? https://book.mql4.com/en/samples/index

일반적으로 다른 프로그램과 마찬가지로 귀하의 프로그램은 각각 특정 작업을 수행하는 별도의 블록으로 구성됩니다. 우리는 그러한 블록 하나를 가져와서 코드를 직접 작성하고 디버그하고 다음 블록으로 이동합니다. 그리고 프로그램이 끝날 때까지 계속됩니다.
 
안녕하세요! 포럼 사용자 여러분!
 //+------------------------------------------------------------------+
//|                                            ИндюкДимонакомпил.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 );
   
   
   ObjectDelete ( "вершина" );
   ObjectDelete ( "основание_первого_снижения  " );
   ObjectDelete ( "начало" );
     ObjectDelete ( "точка4" );
     ObjectDelete ( "пятая_точка!" );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete ( "вершина" );
   ObjectDelete ( "основание_первого_снижения  " );
   ObjectDelete ( "начало" );
     ObjectDelete ( "точка4" );
     ObjectDelete ( "пятая_точка!" );
   ObjectsDeleteAll ( WindowOnDropped ( ) , OBJ_TEXT );
//----
   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 ;
 if (vulf+( 10 * Point )>Ask&&vulf-( 10 * Point )<Bid)vulf= 1 ; 
           
       Alert ( "vulf  " , vulf );   Comment ( "  vulf!!! "   , vulf);  
   if (vulf== 1 ){ Comment ( "  Есть вульв!!! "   , "  timeframe " , timeframe);
   ObjectCreate ( "пятая_точка!" ,   OBJ_TEXT , WindowOnDropped ( ) , Time[ 0 ],  Bid-( 10 * Point )) ; 
     ObjectSetText ( "пятая_точка!" , "пятая_точка!" , 5 , "пятая_точка!" , Crimson ) ;   return ( 0 );  }
     if (vulf!= 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 ;
}
내가 조각하는 지표는 어떻게든 작동한다.. 단점이 많다고 해야하나.. 더군다나.. 무엇보다 매 2회마다 그린다. 네, 챠트에 그리면 안 그리는 경우가 많은데 가끔 그리곤 합니다.. 공통적인 이유는 무엇일까요?