Do you have any documentation on how the server works in tick modes, because I have any issue while coding IF-THEN AND WHILE.DO in tick mode
the following code is OK
ONCE FutTime=40000
ONCE s=2*pipsize
CH=Hour
CM=Minute
//CMC=Minute
CloseTime=Close
CT=Time
CTC=Time
BI=barindex
Y=high
v=volume
DRAWTEXT("Time: #CT#" , BI, Y+10*s)
DRAWTEXT("Current time: #CTC#" , BI, Y+9*s)
DRAWTEXT("FutTime: #FutTime#" , BI, Y+8*s)
DRAWTEXT("Volume: #v#" , BI, Y+7*s)
DRAWTEXT("Close0: #closeTime0#" , BI, Y+6*s)
DRAWTEXT("Close1: #closeTime1#" , BI, Y+5*s)
DRAWTEXT("Close2: #closeTime2#" , BI, Y+4*s)
DRAWTEXT("Close3: #closeTime3#" , BI, Y+3*s)
DRAWTEXT("Close4: #closeTime4#" , BI, Y+2*s)
DRAWTEXT("Nb hits: #CountMM5M15#" , BI, Y+1*s)
IF CT > FutTime AND CT<220000 Then
while yabug=CountMM5M15 do // and add a while as the kludge is the basic kludge
closetime4=closeTime3
closeTime3=closeTime2
closeTime2=closeTime1
closeTime1=closeTime0
closeTime0=closetime
CountMM5M15=CountMM5M15+1 // This is the basic kludge while end
Y=close
s=-s
DRAWTEXT("Time: #CT#" , BI, Y+10*s)
DRAWTEXT("Current time: #CTC#" , BI, Y+9*s)
DRAWTEXT("FutTime: #FutTime#" , BI, Y+8*s)
DRAWTEXT("Volume: #v#" , BI, Y+7*s)
DRAWTEXT("Close0: #closeTime0#" , BI, Y+6*s)
DRAWTEXT("Close1: #closeTime1#" , BI, Y+5*s)
DRAWTEXT("Close2: #closeTime2#" , BI, Y+4*s)
DRAWTEXT("Close3: #closeTime3#" , BI, Y+3*s)
DRAWTEXT("Close4: #closeTime4#" , BI, Y+2*s)
DRAWTEXT("Nb hits: #CountMM5M15#" , BI, Y+1*s)
DRAWTEXT("Yarg: #yarg#" , BI, Y+1*s)
s=-s
y=y+1
WEND // works better if placed here
IF CM < 58 then
futmin=(ROUND(CM/2)+1)*200
IF FutMin < 6000 THEN
FutTime=(CH)*10000+FutMin
ELSE
FutTime=(CH+1)*10000+FutMin-6000
ENDIF
IF FutTime > 210000 then
FutTime= 040000 // make sure we do not collect value between 21:00:00 and 4:00:00 (fixed timings depending on local TZ)
CountMM5M15=0
ENDIF
ENDIF
// WEND // logic fails if placed here
ELSE
yabug=CountMM5M15 // This is the basic kludge, Invert IF condition and use a while to kludge
ENDIF
Return
The following code does not change the programming logic, the WEND is moved a few line below, but the execution is not correct and FutTime ss not updated accordingly
ONCE FutTime=40000
ONCE s=2*pipsize
CH=Hour
CM=Minute
//CMC=Minute
CloseTime=Close
CT=Time
CTC=Time
BI=barindex
Y=high
v=volume
DRAWTEXT("Time: #CT#" , BI, Y+10*s)
DRAWTEXT("Current time: #CTC#" , BI, Y+9*s)
DRAWTEXT("FutTime: #FutTime#" , BI, Y+8*s)
DRAWTEXT("Volume: #v#" , BI, Y+7*s)
DRAWTEXT("Close0: #closeTime0#" , BI, Y+6*s)
DRAWTEXT("Close1: #closeTime1#" , BI, Y+5*s)
DRAWTEXT("Close2: #closeTime2#" , BI, Y+4*s)
DRAWTEXT("Close3: #closeTime3#" , BI, Y+3*s)
DRAWTEXT("Close4: #closeTime4#" , BI, Y+2*s)
DRAWTEXT("Nb hits: #CountMM5M15#" , BI, Y+1*s)
IF CT > FutTime AND CT<220000 Then
while yabug=CountMM5M15 do // and add a while as the kludge is the basic kludge
closetime4=closeTime3
closeTime3=closeTime2
closeTime2=closeTime1
closeTime1=closeTime0
closeTime0=closetime
CountMM5M15=CountMM5M15+1 // This is the basic kludge while end
Y=close
s=-s
DRAWTEXT("Time: #CT#" , BI, Y+10*s)
DRAWTEXT("Current time: #CTC#" , BI, Y+9*s)
DRAWTEXT("FutTime: #FutTime#" , BI, Y+8*s)
DRAWTEXT("Volume: #v#" , BI, Y+7*s)
DRAWTEXT("Close0: #closeTime0#" , BI, Y+6*s)
DRAWTEXT("Close1: #closeTime1#" , BI, Y+5*s)
DRAWTEXT("Close2: #closeTime2#" , BI, Y+4*s)
DRAWTEXT("Close3: #closeTime3#" , BI, Y+3*s)
DRAWTEXT("Close4: #closeTime4#" , BI, Y+2*s)
DRAWTEXT("Nb hits: #CountMM5M15#" , BI, Y+1*s)
DRAWTEXT("Yarg: #yarg#" , BI, Y+1*s)
s=-s
y=y+1
//WEND // works better if placed here
IF CM < 58 then
futmin=(ROUND(CM/2)+1)*200
IF FutMin < 6000 THEN
FutTime=(CH)*10000+FutMin
ELSE
FutTime=(CH+1)*10000+FutMin-6000
ENDIF
IF FutTime > 210000 then
FutTime= 040000 // make sure we do not collect value between 21:00:00 and 4:00:00 (fixed timings depending on local TZ)
CountMM5M15=0
ENDIF
ENDIF
WEND // logic fails if placed here
ELSE
yabug=CountMM5M15 // This is the basic kludge, Invert IF condition and use a while to kludge
ENDIF
Return