以下一段代码能否用C语言表达
variable:tr=0,up=0,dn=0;N:=20;
M:=3;
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR1,N);
median:= (high + low) / 2;
up:= median+atr * M;
dn:= median-atr * M;
tr:=if(c>ref(up,1),1,if(c<ref(dn,1),-1,tr));
flag:=tr<0 and ref(tr,1)>0;
flagh:=tr>0 and ref(tr,1)<0;
dn:=if(tr>0 and dn<ref(dn,1),ref(dn,1),dn);
up:=if(tr<0 and up>ref(up,1),ref(up,1),up);
up:=if(flag,median + atr * M,up);
dn:=if(flagh,median - atr * M,dn);
outtr:=tr;
outup:=up;
outdn:=dn;
supertren:if(outtr=1,outdn,outup),colorwhite;