
等级: 新手上路
- 注册:
- 2025-3-12
- 曾用名:
|
程序:
//@version=1
INPUT: MA240周期(240), MA20周期(20), MA60周期(60), 手数(1,1,20,1), 移动止损点数(15), 止盈点数(15);
// 声明普通全局变量(图表级)
VARIABLE: zs1:=0; // 初始化止损位
VARIABLE: 开仓价格:=0; // 记录开仓价格
// 均线系统
MA240:=MA(CLOSE,MA240周期);
MA20:=MA(CLOSE,MA20周期);
MA60:=MA(CLOSE,MA60周期);
c60:=MA(CLOSE,60) - 5*MINDIFF;
c61:=MA(CLOSE,60) + 5*MINDIFF;
// 方向判断模块
多空方向 := IFF(CLOSE >= MA240, 1, -1);
// 交易信号模块(新增距离限制条件)
金叉条件 := CROSS(MA20, MA60) AND REF(CLOSE,1) >= REF(MA60,1)
AND ABS(CLOSE - MA60) <= 10*MINDIFF; // 新增:价格与60均线距离不超过10点
死叉条件 := CROSS(MA60, MA20) AND REF(CLOSE,1) <= REF(MA60,1)
AND ABS(CLOSE - MA60) <= 10*MINDIFF; // 新增:价格与60均线距离不超过10点
// 收盘前1分钟平仓条件
收盘前3分钟平仓 := TIME >= 145700 AND TIME < 150000; // 假设交易时间是9:00-15:00
// 主交易系统
IF HOLDING = 0 THEN BEGIN
// 开多条件(增加距离限制)
IF 多空方向 = 1 AND 金叉条件 AND NOT(收盘前3分钟平仓) THEN BEGIN
BUY(1, 手数, MARKET);
zs1 := CLOSE - 移动止损点数*MINDIFF;
开仓价格 := CLOSE;
END
// 开空条件(增加距离限制)
IF 多空方向 = -1 AND 死叉条件 AND NOT(收盘前3分钟平仓) THEN BEGIN
BUYSHORT(1, 手数, MARKET);
zs1 := CLOSE + 移动止损点数*MINDIFF;
开仓价格 := CLOSE;
END
END ELSE BEGIN
// 移动止损逻辑
IF HOLDING > 0 THEN BEGIN
zs1 := MAX(zs1, HIGH - 移动止损点数*MINDIFF);
END ELSE IF HOLDING < 0 THEN BEGIN
zs1 := MIN(zs1, LOW + 移动止损点数*MINDIFF);
END
// 止盈条件
IF HOLDING > 0 AND CLOSE >= 开仓价格 + 止盈点数*MINDIFF THEN BEGIN
SELL(1, ABS(HOLDING), MARKET);
END
IF HOLDING < 0 AND CLOSE <= 开仓价格 - 止盈点数*MINDIFF THEN BEGIN
SELLSHORT(1, ABS(HOLDING), MARKET);
END
// 平仓条件
IF HOLDING > 0 AND (死叉条件 OR CLOSE <= zs1 OR CLOSE < c60 OR 收盘前3分钟平仓) THEN BEGIN
SELL(1, ABS(HOLDING), MARKET);
END
IF HOLDING < 0 AND (金叉条件 OR CLOSE >= zs1 OR CLOSE > c61 OR 收盘前3分钟平仓) THEN BEGIN
SELLSHORT(1, ABS(HOLDING), MARKET);
END
END
// 仓位管理模块
IF HOLDING > 手数 THEN BEGIN
SELL(1, HOLDING - 手数, MARKET);
END
IF HOLDING < -手数 THEN BEGIN
SELLSHORT(1, ABS(HOLDING) - 手数, MARKET);
END
// 状态监控
AA: zs1, COLORRED; // 显示动态止损线
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
15分钟程序显示买入了,但是账户却没有买入,请问怎么回事?
注:账户在买入了1手日内,之前买的,是否跟这个有影响?
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?
x
|