
等级: 新手上路
- 注册:
- 2025-5-6
- 曾用名:
|
//====== 系统设置 ======//
INPUT:
手数(1,1,100,1) , // 交易手数
尾盘保护周期(3,2,5,1); // 尾盘保护周期
//====== 全局变量 ======//
VARIABLE:
// 开多次数 = 0, // 多单开仓次数
// 开空次数 = 0, // 空单开仓次数
多头止损价 = 0, // 多单止损价
空头止损价 = 0; // 空单止损价
//====== 数据准备 ======//
// 计算均线
MA1:=MA(C,3);
MA2:=STKINDI('','MA.MA1',0,6,-1);
MA20:MA(C,20);
MA80:MA(C,80);
n1:=todaybar;
dm:=4-INTPART(LOG(C));
结算价:ROUNDS(IF(sum(vol,n1)=0,C,sum(C*vol,n1)/sum(vol,n1)),2+dm),colorred;
// 计算今日关键价格
CYC:=BARSLAST(DATE>REF(DATE,1))+1;
今高:=IF(CYC=1,HIGH,REF(HHV(HIGH,CYC),1));
今低:=IF(CYC=1,LOW,REF(LLV(LOW,CYC),1));
今开:=IF(CYC=1,OPEN,REF(OPEN,CYC-1));
// 获取日线数据
昨10日平均波幅:="DAIBD.MAHL#DAY";
ZBF10:昨10日平均波幅;
// 计算尾盘保护价格
3周期最高价 := REF(HHV(HIGH, 尾盘保护周期), 1);
3周期最低价 := REF(LLV(LOW, 尾盘保护周期), 1);
买入信号 :=CROSS(MA20,MA80);
卖出信号 :=CROSS(MA80,MA20);
// 开多信号
开多信号 := 买入信号 AND HOLDING = 0 ; //AND 开多次数 = 0
// 开空信号
开空信号 := 卖出信号 AND HOLDING = 0 ;// AND 开空次数 = 0
// 平多信号
平多信号 := (HOLDING > 0 AND C <= 多头止损价) ;
// 平空信号
平空信号 := (HOLDING < 0 AND C >= 空头止损价) ;
//====== 交易系统 ======//
IF 开多信号 THEN BEGIN
BUY(1, 手数, MARKET);
多头止损价 := (ENTERPRICE - 0.20 *昨10日平均波幅);
开多次数 := 1;
DRAWTEXT(1, LOW * 0.997, '开多',COLORYELLOW,0);
END
IF 开空信号 THEN BEGIN
BUYSHORT(1, 手数, MARKET);
空头止损价 := (ENTERPRICE + 0.20 *昨10日平均波幅);
开空次数 := 1;
DRAWTEXT(1, HIGH * 1.003, '开空',COLORGREEN,0);
END
//====== 止损管理 ======//
IF 平多信号 THEN BEGIN
SELL(1, 手数, MARKET);
DRAWTEXT(1, HIGH * 1.003, ' 平多',COLORGREEN,0);
END
IF 平空信号 THEN BEGIN
SELLSHORT(1, 手数, MARKET);
DRAWTEXT(1, LOW * 0.997, '平空',COLORYELLOW,0);
END
//止损价调整
IF HOLDING > 0 AND 今高>ENTERPRICE+0.6*昨10日平均波幅 THEN BEGIN
多头止损价 := MAX(多头止损价, 3周期最低价);
END
IF HOLDING < 0 AND 今低<ENTERPRICE-0.6*昨10日平均波幅 THEN BEGIN
空头止损价 := MIN(空头止损价, 3周期最高价);
END
{
//====== 收盘平仓 ======//
IF TIME >= 145500 THEN BEGIN
IF HOLDING > 0 THEN BEGIN
SELL(1, 手数, MARKET);
DRAWTEXT(1, HIGH * 1.003, '收盘平多',COLORGREEN,0);
END
IF HOLDING < 0 THEN BEGIN
SELLSHORT(1, 手数, MARKET);
DRAWTEXT(1, LOW * 0.997, '收盘平空',COLORYELLOW,0);
END
}
// 重置状态
// 开多次数 := 0;
// 开空次数 := 0;
多头止损价 := 0;
空头止损价 := 0;
//持仓:holding,linethick0;
资产:asset,noaxis;
//------ 信号标记 ------//
DRAWICON(买入信号,L,1);
DRAWTEXT(买入信号,L,'↖买点',COLORRED);
DRAWICON(卖出信号,H,2);
DRAWTEXT(卖出信号,H,'↖卖',COLORGREEN);
|
|