以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://www.weistock.com/bbs/list.asp?boardid=4) ---- 临时定义的变量 (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=52987) |
-- 作者:李亚弟 -- 发布时间:2013/6/13 12:08:03 -- 临时定义的变量 我定义了一个普通的变量15windot,不是全局变量。变量的第一次使用是在time=093000,可是我在图表上时间093000之前(具体是091544)shift+Q,显示15windot的值是-12.000。 15windot作为一个临时定义的变量,为什么会在没定义的时间也出现呢? |
-- 作者:jinzhe -- 发布时间:2013/6/13 13:10:47 -- 这个具体时间是当前的行情时间?还是k线时间?
|
-- 作者:李亚弟 -- 发布时间:2013/6/13 13:33:19 -- K线时间 |
-- 作者:jinzhe -- 发布时间:2013/6/13 13:44:42 -- 秒周期? |
-- 作者:李亚弟 -- 发布时间:2013/6/13 13:52:45 -- 分笔 |
-- 作者:jinzhe -- 发布时间:2013/6/13 13:54:35 -- 代码怎么写的,贴一下 |
-- 作者:李亚弟 -- 发布时间:2013/6/13 14:19:56 -- //01 取消FirstGrid,用GridInterval代替 //02 不能单纯的逐K线,必须1秒轮询。以轮询方式定kcj/pcj //03 信号输出 //04 尝试解决白箭头,显示格子线. //05 白箭头未改好。先做一个改动:每逢15分钟全部平仓 //06 恢复FirstGrid //07 恢复多次下单 TmpGridIndex MyRealMp //08 对07进行编译上的修改 //09 修复趋势单很快平仓的问题 drawtext(1,pcj,\'这里\',colorgreen,5); //10 几处订正。补充单边震荡单趋势单的转换(没补充。原意的大部分已经在止盈止损里做了平仓,对于StyleChangeGrid与StyleChangeGrid+1 这个价格区间则不做处理。) //12 添加czbz,修正midline的赋值时刻,令第一次赋值后,同秒内不再赋值。分笔交易需要这个限制,1分钟K线则不用。 //13 把c改为o,添加drawtext用于分析 //14 取消FirstGrid,用GridInterval代替 //15 修改时间点。113000平仓后早上不再开仓. //16 113000的平仓要提前发出指令,令在112900平仓,并早上不再开仓。(之前的版本漏了113000的平仓) //18 130000不需要清仓 //19 价位微调 //20 15windot daywindot //22 修补。1,删除不必要的else。2,删除4部曲的时间的重复限制。 runmode:0; variable:MyRealMp=0,qcbz=0,RealMidLine=0,ccfl=0,czbz=0,kcjd=0,pcjd=0,kcjk=0,pcjk=0,daywindot=0;//ccfl,持仓分类,0,无持仓,1,震荡单,2,趋势单 time1:= time=091500 or time=093000 or time=094500 or time=100000 or time=101500 or time=103000 or time=104500 or time=110000 or time=111500 or time=130000 or time=131500 or time=133000 or time=134500 or time=140000 or time=141500 or time=143000 or time=144500 or time=150000; if time1 then begin if czbz=0 then begin
MidLine:=open;
RealMidLine:=MidLine;
czbz:=1; end end else czbz:=0; MinPoint:=0.2;//最小变动值,比如上海A股最小变动值为0.01元 MidLine1:RealMidLine,COLORMAGENTA,LINETHICK3; //定时清仓 If time=093000 or time=094500 or time=100000 or time=101500 or time=103000 or time=104500 or time=110000 or time=111500 or time=112900 or time=131500 or time=133000 or time=134500 or time=140000 or time=141500 or time=143000 or time=144500 or time=150000 or time=150800 then begin if qcbz=0 then begin If holding<0 then begin pcj:=o+OffSet*MinPoint; 15windot:=kcjk-(pcjk+pcj*(-1)*holding)+(pcjd-kcjd);//系统会连续开仓连续平仓,所以分别累加多头空头的开仓价、平仓价,最后相减得盈利点数。以15分钟为一个周期,周期结束就全部平仓。 sellshort(1,0,limitr,pcj); end If holding>0 then begin pcj:=o-OffSet*MinPoint; 15windot:=(pcjd+pcj*holding)-kcjd+(kcjk-pcjk); sell(1,0,limitr,pcj); end //drawtext(1,pcj,\'1\',COLORBLUE,4); daywindot:=daywindot+15windot; MyRealMp:=0;ccfl:=0;qcbz:=1;kcjd:=0;pcjd:=0;kcjk:=0;pcjk:=0; if 15windot>=0 then DRAWTEXT(1,o,NUMTOSTR(15windot,1),COLORRED,4); if 15windot<0 then DRAWTEXT(1,o,NUMTOSTR(15windot,1),COLORGREEN,4); 15windot:=0; end If time=150800 then begin if daywindot>=0 then DRAWTEXT(1,o,NUMTOSTR(daywindot,1),COLORRED,5); if daywindot<0 then DRAWTEXT(1,o,NUMTOSTR(daywindot,1),COLORGREEN,5);
daywindot:=0;15windot:=0;//下面的代码不再出现15windot。其实15windot作为临时变量,并不需特别赋值为0.
end end else qcbz:=0; tradetime:=(Time>=091500 and Time<112900) or (Time>=130000 And Time<150800);//112900 150800必须平仓后就不开仓,所以是=不是<= if tradetime then begin
。。。各种平仓。分开记录多单空单的平仓价。。。
。。。各种开仓。分开记录多单空单的平仓价。。。 end |
-- 作者:jinzhe -- 发布时间:2013/6/13 14:28:51 -- offset未定义? |
-- 作者:李亚弟 -- 发布时间:2013/6/13 14:40:58 -- 不是。offset只是作为一个参数来用的。 |