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

 

불꽃!

생성된 파일에서 Open=Close=High=Low - 차이가 없고 모든 가격이 동일하고 동일한 가격의 4개 열이 있는 이유를 이해할 수 없습니다. 다음은 데이터를 업로드하는 Expert Advisor의 코드입니다.

 int init()  
  {
   int h= FileOpen ( "H" +( Period ()/ 60 )+ ".csv" , FILE_CSV | FILE_WRITE | FILE_READ , ";" );
     if (h< 1 )
      {
       Print ( "Файл не найден : " , GetLastError ());
       return (false);
      }
   FileSeek (h, 0 , SEEK_END );
   FileWrite (h, "Date" , "DayOfWeek" , "CLOSE" , "OPEN" , "High" , "LOW" );
   FileClose (h);        
  }
int start()
  {
   int h= FileOpen ( "H" +( Period ()/ 60 )+ ".csv" , FILE_CSV | FILE_WRITE | FILE_READ , ";" );
     if (h< 1 )
      {
       Print ( "Файл не найден : " , GetLastError ());
       return (false);
      }
       string Wtime= TimeToStr ( TimeCurrent (),TIME_DATE|TIME_MINUTES);
       string Wday= DoubleToStr (DayOfWeek(), 0 );
       FileSeek (h, 0 , SEEK_END );
       FileWrite (h,Wtime,Wday, DoubleToStr ( iClose ( "GBPUSD" , 0 , 0 ), MarketInfo ( Symbol (),MODE_DIGITS)),
                             DoubleToStr ( iOpen ( "GBPUSD" , 0 , 0 ), MarketInfo ( Symbol (),MODE_DIGITS)),
                             DoubleToStr ( iHigh ( "GBPUSD" , 0 , 0 ), MarketInfo ( Symbol (),MODE_DIGITS)),
                             DoubleToStr ( iLow ( "GBPUSD" , 0 , 0 ), MarketInfo ( Symbol (),MODE_DIGITS)));
       FileClose (h);   
       Print ( "Close=" ,Close[ 0 ]);
       Print ( "Open=" ,Open[ 0 ]);
       Print ( "Low=" ,Low[ 0 ]);
       Print ( "High=" ,High[ 0 ]);
     
   return ( 0 );
  }
 

좋은 오후입니다 동료 프로그래머! 이 매우 흥미로운 Expert Advisor를 매우 친절하게 살펴보십시오! 뭔가 수정 해야 합니다. 나는 전문가가 이것을 하는 것이 그리 어렵지 않을 것이라고 생각합니다(그리고 희망합니다)!

/* 디컴파일은 이 포럼에서 불법입니다. 처음으로 경고. 반복 - 영구 금지(FAQ)*/

 
Andrew1001 :

좋은 오후입니다 동료 프로그래머! 이 매우 흥미로운 전문가 고문을 친절하게 살펴보십시오! 수정해야 할 사항이 있습니다. 즉, 수익 창출을 위해 사용자 지정 트레일에 첨부하고 싶습니다(사용하지 않는 것이 좋습니다). 나는 전문가가 이것을 하는 것이 그리 어렵지 않을 것이라고 생각합니다(그리고 희망합니다)!

/*이 포럼에서 디컴파일은 불법입니다. 처음으로 경고. 반복 - 영구 금지(FAQ)*/



잘! 그런 다음 코드를 보고 수정할 수 있도록 배치하는 방법은 무엇입니까? (진행자에게 질문)
 
ANG3110 :

글쎄, 나는 거기에 예를 썼다.

***

그리고 모든 날을 그릴 필요는 없고 마지막 날만 그릴 경우 약간 다르게 수행됩니다. 좀 더 전문적인 접근 방식을 제안하는 것뿐입니다.

 #property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Blue
#property indicator_width1 2
//==============================
extern int     hour = 5 ;
extern int     hrma = 24 ;
//==============================
double fx[];
double hm;
int p,hr,hrp;
//************************************************************
int init()  
{   
   SetIndexBuffer ( 0 ,fx); SetIndexEmptyValue ( 0 ,EMPTY); 
   
   p=hrma* 60 / Period ();
   
   return ( 0 );
}
//************************************************************
int start()
{
   int cbi= Bars - IndicatorCounted ()- 1 ; if (cbi< 0 ) return (- 1 );
   if (cbi== 1 ) cbi--;
   if (cbi> 1 ) cbi= Bars -p- 1 ;
   //-------------------------------
   for ( int i=cbi; i>= 0 ; i--)
   {
      hrp= TimeHour (Time[i+ 1 ]); 
      hr= TimeHour (Time[i]);
      
       if (hr==hour && hrp!=hr) 
      {
         fx[i+ 1 ]=EMPTY;
         hm=Close[i]; // я вставил закрытие оно работает на нижних таймфремах

//КАК ТУТ вставить High Low для  hour = 5 для ВСЕХ таймфремов ниже ограниченного таймфрема???????????

      }
      
      fx[i]=hm; 
   }
  
   return ( 0 );
}
//***************************************************************

특정 시간, 같은 시간 = 5 동안 iHigh 및 iLow를 삽입하는 방법이 명확하지 않을 뿐입니다. ???????????? 그것은 다시 같은 계란으로 밝혀졌습니다 ...

PROFISIONALLY iClose iHigh iLow를 통해 얻었 지만 이 옵션에 대한 코드 작성 방법을 잊어버렸습니다... 원리는 기억하고 세부 사항은 잊어버렸습니다

 int start()
  {
int counted_bars= IndicatorCounted ();
if (counted_bars< 0 ) return (- 1 );
if ( Period () > 240 )   return (- 1 );

int LastPrevDay = iBars ( Symbol (), PERIOD_D1 );
int barnH= iBars ( Symbol (), PERIOD_H1 );

for ( int i = LastPrevDay- 1 ; i >= 0 ; i--)
{
datetime NowDay = iTime ( Symbol (), PERIOD_D1 , i);
int PrevDay = iBarShift ( Symbol (), PERIOD_D1 , NowDay);
datetime LastD =   iTime ( Symbol (), PERIOD_D1 , i- 1 ); 
int LastDay = iBarShift ( Symbol (), PERIOD_D1 , LastD);

if (PrevDay>LastDay)   /// что было дальше НЕПОМНЮ!!!!, НО вариант ЛУЧШЕ, можно непарясь ставить уровни iHigh iLow iClose iOpen
{ 
datetime x_time= StrToTime ( TimeToStr (NowDay, TIME_DATE)+ " " +shift_time); 
int x_shift= iBarShift ( Symbol (), PERIOD_H1 ,x_time);
double CL= iClose ( Symbol (), PERIOD_H1 ,x_shift);
}

buffer[i]= CL;
}

return ( 0 );
}

이해의 위기를 도와주세요????????????????????

 

전문가 다시 한 번 도움을 요청하십시오 PLEASE !!!!

iHigh iLow iClose 를 올바르게 버퍼링하는 방법 ???? 아래 차트에서 올바르게 읽을 수 있도록 특정(H1) 기간을 설정해야 합니다????

 int start()
  {
int counted_bars= IndicatorCounted ();
if (counted_bars< 0 ) return (- 1 );
if ( Period () > 240 )   return (- 1 );

int LastPrevDay = iBars ( Symbol (), PERIOD_D1 );
int barnH= iBars ( Symbol (), PERIOD_H1 );

for ( int i = LastPrevDay- 1 ; i >= 0 ; i--)
{
datetime NowDay = iTime ( Symbol (), PERIOD_D1 , i);
int PrevDay = iBarShift ( Symbol (), PERIOD_D1 , NowDay);
datetime LastD =   iTime ( Symbol (), PERIOD_D1 , i- 1 ); 
int LastDay = iBarShift ( Symbol (), PERIOD_D1 , LastD);

if (PrevDay>LastDay)  
/// что было дальше НЕПОМНЮ!!!!, НО вариант ЛУЧШЕ, можно непарясь ставить уровни iHigh iLow iClose iOpen
{ 
datetime x_time= StrToTime ( TimeToStr (NowDay, TIME_DATE)+ " " +shift_time); 
int x_shift= iBarShift ( Symbol (), PERIOD_H1 ,x_time);
double CL= iClose ( Symbol (), PERIOD_H1 ,x_shift);
}

buffer[i]= CL;
}

return ( 0 );
}
 

안녕하세요! 제대로 쓰는 법 좀 알려주세요

문제는 ObjectSetText가 아무 작업도 하지 않는다는 것입니다. 서명 상단 대신 텍스트가 비문을 받습니다.

 ObjectCreate ( "вершина" ,   OBJ_TEXT , WindowOnDropped ( ) , Time[бар_вершина],  вершина+( 10 * Point )) ;  
       ObjectSet (   "вершина" ,   OBJPROP_COLOR , Crimson ) ;
     ObjectSetText ( "вершина" , "вершина" , 5 , NULL , CLR_NONE ) ;   
 
orb :

생성된 파일에서 Open=Close=High=Low - 차이가 없고 모든 가격이 동일하고 동일한 가격의 4개 열이 있는 이유를 이해할 수 없습니다. 다음은 데이터를 업로드하는 Expert Advisor의 코드입니다.


응답 없음 기호 및 기간 데이터 -- 필요한 차트를 엽니다.

코드의 잘못된 입력:

 FileWrite (h,Wtime,Wday, DoubleToStr ( iClose ( "GBPUSD" , 0 , 0 ), MarketInfo ( Symbol (),MODE_DIGITS)),..

더 정확하게:

 FileWrite (h,Wtime,Wday, DoubleToStr ( iClose ( "GBPUSD" , 0 , 0 ), MarketInfo ( "GBPUSD" ,MODE_DIGITS)),..

조건이 충족되면 코드가 작동하는 것입니다.

 
Roll :


응답 없음 기호 및 기간 데이터 -- 필요한 차트를 엽니다.

코드의 잘못된 입력:

더 정확하게:

조건이 충족되면 코드가 작동하는 것입니다.

응 시도해 볼게!)
 
nlp2311 :

특정 시간, 같은 시간 = 5 동안 iHigh 및 iLow를 삽입하는 방법이 명확하지 않을 뿐입니다. ???????????? 그것은 다시 같은 계란으로 밝혀졌습니다 ...

PROFISIONALLY iClose iHigh iLow를 통해 얻었지만 이 옵션에 대한 코드 작성 방법을 잊어버렸습니다... 원리는 기억하고 세부 사항은 잊어버렸습니다

이해의 위기를 도와주세요????????????????????


시간별 차트 및 그 아래에서는 다른 시간대의 가격을 가져오지 않고 시간별 시간대의 막대를 그릴 수 있습니다. 아이하이 등에 문의하세요. 지표의 속도를 늦추고 다른 기간을 바꿔야 하므로 그다지 권장하지 않습니다.

한 시간 프레임에 모든 것을 실행할 수 있다면 이것이 바람직합니다.

그리고 실제로 더 작은 시간 프레임에 선으로 시간당 데이터를 그리는 방법은 무엇입니까? 글쎄, 그런 것.

 #property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Gold
#property indicator_color4 Lime
//==============================
double H[],L[],O[],C[];
double hm,lm,om,cm;
int hr,hrp,di,f= 0 ;
//************************************************************
int init()  
{   
   SetIndexBuffer ( 0 ,H);
   SetIndexBuffer ( 1 ,L);
   SetIndexBuffer ( 2 ,O);
   SetIndexBuffer ( 3 ,C);
   
   if ( Period ()> 1440 ) f= 1 ;
   
   di= 60 / Period ();
   
   return ( 0 );
}
//************************************************************
int start()
{
   if (f== 1 ) { Comment ( "Период больше H1!" ); return ( 0 );}
   //-------------------------------
   int cbi= Bars - IndicatorCounted ()- 1 ; if (cbi< 0 ) return (- 1 );
   if (cbi== 1 ) cbi--;
   if (cbi> 1 ) 
   {
      cbi= Bars - 1 ;
      hm=High[cbi]; 
      lm=Low[cbi]; 
      om=Open[cbi]; 
      cm=Close[cbi]; 
   }
   //-------------------------------
   for ( int i=cbi; i>= 0 ; i--)
   {
      hrp= TimeHour (Time[i+ 1 ]); 
      hr= TimeHour (Time[i]);
      
       if (hrp!=hr) 
      {
         for ( int j=i+ 1 ; j<=i+di; j++)
         {
            H[j]=hm;
            L[j]=lm;
            O[j]=om;
            C[j]=cm;
         }
         
         hm=High[i];
         lm=Low[i];
         om=Open[i];
         cm=Close[i];
      }
       else
      {
         if (High[i]>hm) hm=High[i];
         if (Low[i]<lm) lm=Low[i];
         cm=Close[i];
      }
      
      H[i]=hm;
      L[i]=lm;
      O[i]=om;
      C[i]=cm;
   }
   
   return ( 0 );
}
//***************************************************************
 
ANG3110 :


시간별 차트 및 그 아래에서는 다른 시간대의 가격을 가져오지 않고 시간별 시간대의 막대를 그릴 수 있습니다. 아이하이 등에 문의 지표의 속도를 늦추고 다른 기간을 바꿔야 하므로 그다지 권장하지 않습니다.

한 시간 프레임에 모든 것을 실행할 수 있다면 이것이 바람직합니다.

그리고 실제로 더 작은 시간 프레임에 선으로 시간당 데이터를 그리는 방법은 무엇입니까? 음, 다음과 같습니다.


제안해 주셔서 감사합니다.
사유: