특정 시간을 참조하는 방법 - 페이지 4

 
Agent86 :
안녕
답변 감사합니다

시간 범위 또는 범위/필터에 관한 귀하의 게시물을 읽었으며 결론은 이해했지만 방정식은 완전히 이해하지 못했습니다.

귀하의 답변에 따르면 게시 한 방정식을 이해하지 못하기 때문에 적절한 형식의 if(Time[1] == 7:15) 와 같은 것을 비교하는 표현식을 만드는 방법을 이해하지 못한다고 가정해야 합니다.

당신은 쓰여진 것을 읽고 그것을 알아낼 필요가 있습니다. . . 함수를 이해하지 못한다면 함수를 찾아보고 이해할 때까지 읽으십시오. WHR 이 게시한 코드는 매우 간단한 수학입니다. . . 익숙하지 않은 유일한 것은 % 입니다. . . 백분율을 의미하지 않습니다. . . 찾아보세요, 여기에서 찾을 수 있습니다: https://docs.mql4.com/basis/operations/math
 
RaptorUK :

당신은 정말로 문서 주위에 당신의 방법을 배우기 시작할 필요가 있습니다. . .

TimeFrame을 사용하는 함수로 이동하면 timeframe enumeration이 표시됩니다. . . Timeframe enumeration 으로 연결되며 Period_H1이 60이라는 값을 알려줍니다. . . 즉, 60분. . . 60분 * 60 = 초 . . . 날짜 시간은 초 단위입니다.


코딩한 내용이 작동하지 않습니다. . 귀하의 time_select는 datetime이 아닙니다 . . . 날짜 시간이 무엇인지 기억하십시오. 문서에서 . . . " datetime type (1970년 1월 1일 자정부터 경과된 초의 양을 나타내는 정수). " 오전 7시 15분을 의미하는 날짜 시간을 원할 경우 1970년 1월 1일부터 7까지 경과한 시간(초)이어야 합니다. 오늘 오전 15시 . . .

당신이 계산한 것은 자정부터 오늘 아침 오전 7시 15분까지의 초 수이며 날짜 시간이 아닙니다.


나는 이것이 날짜 시간이 아니라는 것을 알고 있으며 PERIOD_H1이 무엇인지 정확히 이해했다면 나도 알고 있었을 것입니다.

1970년 1월 1일부터 초로 변환해야 합니다.
알았어 고마워
 
RaptorUK :
당신은 쓰여진 것을 읽고 그것을 알아낼 필요가 있습니다. . . 함수를 이해하지 못한다면 함수를 찾아보고 이해할 때까지 읽으십시오. WHR 이 게시한 코드는 매우 간단한 수학입니다. . . 익숙하지 않은 유일한 것은 % 입니다. . . 백분율을 의미하지 않습니다. . . 찾아보세요, 여기에서 찾을 수 있습니다: https://docs.mql4.com/basis/operations/math
나는 %가 퍼센트를 의미하지 않는다는 것을 이해합니다.
나는 86400이 왜 사용되었는지 이해하지 못했다.

방금 이것을 알아 냈습니다 == 하루에 몇 초만에 얻었습니까?
 
고마워 사람들

나는 이것을 통해 작업을 계속했고 특정 날짜의 자정을 마무리하는 다양한 방법을 이해합니다.

그런 다음 18시간 x 3600을 계산하는 몇 가지 다른 방법이 제안된 대로 1시간의 초 수에 18을 곱하여 HR1800이 표시됩니다.

범위뿐만 아니라 특정 시간에 대한 일부 시간 코드를 포함하여 다양한 시간 코드를 만들 수 있어야 한다고 생각합니다.

다시 한 번 감사합니다
 
다음은 선택 가능한 시간 및/또는 시간 범위에 대한 내 진행 상황입니다.

불완전하고 조잡하지만 적어도 지금은 모든 게시물을 이해합니다. 감사합니다.

 //+------------------------------------------------------------------+
//|                                         15min_straddle_timer.mq4 |
//|                                     Agent86  15 straddle timer   |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Agent86"


//---- input parameters
extern double     TakeProfit= 20.0 ;
extern double     Lots= 0.1 ;
extern double     StopLoss= 10.0 ;
extern int MagicNumber= 1586 ;

//Time Select and Range select IE: extHour=7; and extMinutes=15; means 7:15am
//Note using the 24hour clock means extHour=13; means 1:00pm fyi
extern int   extHour= 7 ;
extern int   extMinutes= 15 ;

//++++ These are adjusted for 5 digit brokers.

int      pips2points;     // slippage  3 pips    3=points    30=points
double   pips2dbl;       // Stoploss 15 pips    0.0015      0.00150
int      Digits .pips;     // DoubleToStr(dbl/pips2dbl, Digits.pips)

     // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   if ( Digits == 5 || Digits == 3 )
   {     // Adjust for five (5) digit brokers.
      pips2dbl    = Point * 10 ; pips2points = 10 ;   Digits .pips = 1 ;
   } 
   else 
    {    
      pips2dbl    = Point ;    pips2points =   1 ;   Digits .pips = 0 ; 
    }
     // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
     
   
    
//---- 

//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return ( 0 );
  }
   
    
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {

datetime now = Time[ 0 ],
         bod = now - now % 86400 ,
         Time_Select = bod + extHour* 3600 +extMinutes,
         HR1800 = bod + 18 * 3600 ,  //I'll make extern for this too
         HR2100 = bod + 21 * 3600 ;  //and this
         
if (Time[ 1 ] == Time_Select)
   {
   double Low_Mark = Low[ 1 ] - 20 *pips2dbl,
          High_Mark = High[ 1 ] + 20 *pips2dbl;
   Print (Low[ 1 ], " = Low " , Low_Mark, " = Low_Mark" ); 
   Print ( TimeToStr (Time[ 1 ]), " Low =" , Low[ 1 ], " High =" , High[ 1 ]);
   }
   {
   }
   
//if (Time[1] >= HR1800 && Time[1] < HR2100)
      
          
   return ( 0 );
  }    

//+------------------------------------------------------------------+

                
 
Agent86 :
다음은 선택 가능한 시간 및/또는 시간 범위에 대한 내 진행 상황입니다.

불완전하고 조잡하지만 적어도 지금은 모든 게시물을 이해합니다. 감사합니다.


그러나 Time_Select 가 올바르지 않습니다.
 
넵 감사합니다 알겠습니다
포스팅하고 바로 생각하다가 저녁 먹으러 갔어요 ㅋㅋ

Time_Select = bod + extHour* 3600 + extMinutes* 60 ,
나는 결국 7:15 또는 그와 같은 시간 동안 실제 사용자 입력을 사용하는 방법을 알아낼 수 있다는 것을 알고 있지만 여전히 내가 찾던 결과를 보는 것이 좋습니다.

한 번에 하나의 기능 을 이해하고 작업해야 한다고 생각합니다. 아마도 구문 학습에 너무 많은 정보를 집어넣고 모든 사전 기능과 주제를 제대로 다루지 않아 일을 훨씬 쉽게 만들 수 있었을 것입니다.

어쨌든 이 시간이 지나면 마침내 mql을 더 잘 배울 수 있도록 내 자신을 관리하는 것을 포함하여 제 시간에 처리할 수 있게 되었습니다.

다시 한번 모두 감사합니다
 
왜 이것을 시간 선택에 사용할 수 없습니까? 이전보다 이것을 더 복잡하게 만들었습니까?

 datetime var1= StrToTime ( "7:15" );

if (Time[ 1 ] == var1)
{
}
이것에 문제가 있습니까?
 
Agent86 :
넵 감사합니다 알겠습니다
포스팅하고 바로 생각하다가 저녁 먹으러 갔어요 ㅋㅋ

:-)
 
시간 및 스트래들 선택에 대해 이러한 방식으로 StrToTime을 사용하는 데 문제가 있는 사람이 있습니까?

조언 부탁드립니다 감사합니다

 //+------------------------------------------------------------------+
//|                                      straddle_with_timerange.mq4 |
//|                           Agent86's Candle Straddle with timer   |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Agent86"


//---- input parameters
extern double     TakeProfit= 20.0 ;
extern double     Lots= 0.1 ;
extern double     StopLoss= 10.0 ;
extern int        MagicNumber= 1586 ;

extern string     Straddle_Candle= "7:15" ; //select your straddle candle
extern string     StartTime= "7:15" ; //select your start time range
extern string     EndTime= "17:00" ; //select your end time range


//++++ These are adjusted for 5 digit brokers.

int      pips2points;     // slippage  3 pips    3=points    30=points
double   pips2dbl;       // Stoploss 15 pips    0.0015      0.00150
int      Digits .pips;     // DoubleToStr(dbl/pips2dbl, Digits.pips)

     // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   if ( Digits == 5 || Digits == 3 )
   {     // Adjust for five (5) digit brokers.
      pips2dbl    = Point * 10 ; pips2points = 10 ;   Digits .pips = 1 ;
   } 
   else 
    {    
      pips2dbl    = Point ;    pips2points =   1 ;   Digits .pips = 0 ; 
    }
     // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
     
   
    
//---- 

//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return ( 0 );
  }
   
    
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {

datetime Candle_Select = StrToTime (Straddle_Candle),
         Start_Time = StrToTime (StartTime),
         End_Time = StrToTime (EndTime);
         
if (Time[ 1 ] == Candle_Select)
   {
   double Low_Mark = Low[ 1 ] - 20 *pips2dbl,
          High_Mark = High[ 1 ] + 20 *pips2dbl;
   Print (Low[ 1 ], " = Low " , Low_Mark, " = Low_Mark" ); 
   Print ( TimeToStr (Time[ 1 ]), " Low =" , Low[ 1 ], " High =" , High[ 1 ]);
   }
      
          
   return ( 0 );
  }    

//+------------------------------------------------------------------+