等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
- FireScript
|
以多头为例:
VARIABLE:CT:=0;
ISNIGHT:OPENTIME(1)>40000;//判断是否有夜盘 ,有夜盘返回0,没有夜盘返回1
D:=STRLEFT(NUMTOSTR(TIME,0),2);//截取K线字符串前2位
CD1:D='13' AND NOT(REF(D='13',1)) AND TIME>=130000;//白盘开盘位置
//以开盘价计算的涨跌 表示开盘时候的涨跌
OPZD:100*((O-REF(C,1))/REF(C,1));
IF 100*(AVGENTERPRICE-C)/AVGENTERPRICE>=0.14 THEN BEGIN //固定止损
多止损1:SELL(1,HOLDING,MARKET);
BUY(HOLDING=0 AND CT=1,1,MARKETR);//平仓后开第二次仓
ct:=0;
END
//移动止损部分************************
//求出持仓以来的最高价或最低价,通过与当前价做比较,判断资金回落的幅度
DTYDZS:=(HHV(H,ENTERBARS)-CLOSE)/AVGENTERPRICE>=(1/3);
IF DTYDZS AND HOLDING>0 THEN
BEGIN
SELL(DTYDZS,0,MARKET);
BUY(HOLDING=0 AND CT=1,1,MARKETR);//平仓后开第二次仓
ct:=0;
END
IF TODAYBAR=1 AND OPZD>=0.07 AND HOLDING=0 THEN //夜盘开盘时候
BEGIN
BUY(1,1,MARKETR);
CT:=CT+1;
END
IF ISNIGHT=0 AND CD1 AND OPZD>=0.07 AND HOLDING=0 THEN //白盘开盘时候
BEGIN
BUY(1,1,MARKETR);
CT:=1;
END
MARK:=0;//用于记录当前是否满足某个收盘K结束前N分钟的变量
FOR I=1 TO 2 DO //循环变量2收盘时间来进行判断
BEGIN
abb:=timetot0(CLOSETIME(I))-time0,NODRAW;//当前K线时间距离收盘K线结束倒计时
abb3:=timetot0(CLOSETIME(I))-timetot0(dynainfo(207)),NODRAW;//当前时间距离收盘K时间
IF (abb<15 and abb>=0 and (not(ISLASTBAR))) or (ISLASTBAR and abb3>=0 and abb3<15) THEN MARK:=1;
END
if MARK then //兼顾实际交易时候的信号和历史回测信号
begin
收盘平仓:sell(holding>0,holding,market);
ct:=0;
end
|
|