EventSetMillisecondTimer( 10 ); // 1st will read in 10 EventSetMillisecondTimer( 250 ); // 2nd will read in 250 EventSetMillisecondTimer( 1250 ); // 3rd will read in 1250
EventSetMillisecondTimer( 10 ); // 1st will read in 10 EventSetMillisecondTimer( 250 ); // 2nd will read in 250 EventSetMillisecondTimer( 1250 ); // 3rd will read in 1250
但我需要帮助,请。
它并不像我想的那样 工作。
如果有人理解我的担忧,请给我建议或帮助。
谢谢。
不,它不能像这样工作,你只用一个定时器和一个定时器。
但你可以通过使用一个简单的计数器来分割或拼接时间间隔。
int clock;
OnTimer() { clock++;
switch(clock) { case500: //Do something... break;
case1000: //Do something... clock=0; // reset counter if need be. break;
voidOnTimer() { //--- _clock++; //--- switch ( _clock ) { case500 : if ( // will be same thing in here? ) ) { ... _CreateLines_M5(); } //---if Close break;
case1000: if ( // will be same thing in here? ) ) { ... _CreateLines_M5(); } //---if Close
voidOnTimer() { //--- _clock++; //--- switch ( _clock ) { case500 : if ( // will be same thing in here? ) ) { ... _CreateLines_M5(); } //---if Close break;
case1000: if ( // will be same thing in here? ) ) { ... _CreateLines_M5(); } //---if Close
你可以使用开关运算符。
{
case 0:
// Do Something...
break;
case 1:
// Do Something...
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
// etc...
}
或者使用简单的双if语句。
{
// Do Something...
}
如果时间小时高于>0,但也&&低于<22等等。
或者你可以使用。
{
// Do Something...
}
If time hour is above > or == equal to 0 but also && below < or == equal to 22 etc.
它稍有不同,因为它包括小时,当它相等时,之前的例子>0排除了0本身,因为它是相等的,所以不在上面。
#月线 - 对我来说是关闭的。
我用'策略测试器' 进行了测试, 到目前为止,实时 效果很好。
我从你们的评论中学到了很多东西,使我的这个指标如此出色,非常感谢@Marco vd Heijden
特别感谢马可先生 和威廉先生。
下面的代码对我来说很好用,但有时无关紧要,它需要很长的时间 (1250)。
// which is good?
EventSetTimer( 1 );
另外,我可以用'Switch'函数 来做吗?
//----第二次编辑
我不希望使用 start()函数。事实上,我需要像下面这样设置。
EventSetMillisecondTimer( 250 ); // 2nd will read in 250
EventSetMillisecondTimer( 1250 ); // 3rd will read in 1250
但我需要帮助,请。
//---- 第三次编辑
{
case 1 : EventSetMillisecondTimer( 100 );
case 2 : EventSetMillisecondTimer( 250 );
case 3 : EventSetMillisecondTimer( 1250 );
default : EventSetMillisecondTimer( 10 ); break;
} //---switch Close
它不工作,像我想的那样。
如果有人理解我的担忧,请给我建议或帮助。
谢谢。
我不希望使用 start()函数。事实上,我需要像下面这样设置。
EventSetMillisecondTimer( 250 ); // 2nd will read in 250
EventSetMillisecondTimer( 1250 ); // 3rd will read in 1250
但我需要帮助,请。
它并不像我想的那样 工作。
如果有人理解我的担忧,请给我建议或帮助。
谢谢。
不,它不能像这样工作,你只用一个定时器和一个定时器。
但你可以通过使用一个简单的计数器来分割或拼接时间间隔。
{
clock++;
switch(clock)
{
case 500:
//Do something...
break;
case 1000:
//Do something...
clock=0; // reset counter if need be.
break;
// Etc...
}
}
你两次 提到'事件处理函数', 我读了 几遍 (也许我没有清楚地理解那一页的所有内容--我也使用'OnTimer'函数),但我担心那一页,那会把我拉到另一个方向--但我的这个指标快完成了。
但我看到仅仅是'EventSetMillisecondTimer( 1250 );' 有时会花费'无关紧要' 的长时间。
但你可以通过使用一个简单的计数器来分割或拼接时间间隔。
这段代码对吗?
{
//---
_clock++;
//---
switch ( _clock )
{
case 500 :
if ( // will be same thing in here? ) )
{
...
_CreateLines_M5();
} //---if Close
break;
case 1000:
if ( // will be same thing in here? ) )
{
...
_CreateLines_M5();
} //---if Close
_clock = 0;
break;
} //---switch Close
}
但它对我不起作用。
谢谢。
{
//---
_clock++;
//---
switch ( _clock )
{
case 500 :
if ( // will be same thing in here? ) )
{
...
_CreateLines_M5();
} //---if Close
break;
case 1000:
if ( // will be same thing in here? ) )
{
...
_CreateLines_M5();
} //---if Close
_clock = 0;
break;
} //---switch Close
}
但它对我不起作用。
{
if(++_clock % 500 == 0)_CreateLines_M5();
}
{
if(++_clock % 500 == 0)_CreateLines_M5();
}
非常感谢!
我试了一下,它不断地刷新,而在一分钟内,即使 我选择PERIOD_M5。
我还想知道我是否需要使用PERIOD_M1 和 PERIOD_M5,我可以像下面这样使用吗?
if(++_clock % 500 == 0)_CreateLines_M5();
另外, 请问下面的方法是否正确?
{
_dt_Prd_M5 = iTime( Symbol(), _prd_M5, 0 );
_CreateLines_M5();
}
祝您一切顺利。
非常感谢!
我试了一下,它不断地刷新,而在一分钟内,即使 我选择PERIOD_M5。
我还想知道我是否需要使用PERIOD_M1 和 PERIOD_M5,我可以像下面这样使用吗?
if(++_clock % 500 == 0)_CreateLines_M5();
另外, 请问下面的方法是否正确?
{
_dt_Prd_M5 = iTime( Symbol(), _prd_M5, 0 );
_CreateLines_M5();
}
祝您一切顺利。