下面代码,就两个条件。
1.记录当前价格。
2.记录价格>当前价格 0.5% 就买入,没有持仓判断。也就是说,只要低于0.5就无限买入
3.当前价格>已买入股票价格 1%就卖出
麻烦帮我看下下面策略是不是有问题。
且在分时图中标记买入卖出点
[PEL] 复制代码 GLOBALVARIABLE:ref_price=0, buy_price=0, position=0;
GLOBALVARIABLE:buy_count=0, sell_count=0, total_shares=0;
VARIABLE:buy_line=0, sell_line=0;
// 初始化参考价格(仅在策略启动时执行一次)
if ref_price=0 then
ref_price := close;
// 当价格从参考点下跌0.5%时买入(无论是否持仓)
if close <= ref_price*0.995 then
begin
tbuy(1,100,mkt);
buy_price := close; // 记录最新买入价
position := 1;
total_shares := total_shares + 100; // 累计持仓数量
ref_price := close;
buy_count := buy_count + 1;
// 优化买入标记 - 使用金字塔系统兼容参数
DRAWTEXT(1, close*0.994, '买入', 3);
DRAWICON(1, close*0.992, 1, 3); // 向上箭头
end;
// 当价格从参考点上涨1%时,重置参考价格(仅在空仓时)
if close >= ref_price*1.01 and position=0 then
ref_price := close;
// 当持有头寸且价格≥买入价*1.01时卖出(卖出全部持仓)
if position=1 and close >= buy_price*1.01 then
begin
tsell(1,total_shares,mkt); // 卖出全部持仓
position := 0;
total_shares := 0; // 重置持仓数量
ref_price := close;
sell_count := sell_count + 1;
// 优化卖出标记 - 使用金字塔系统兼容参数
DRAWTEXT(1, close*1.006, '卖出', 2);
DRAWICON(1, close*1.008, 2, 2); // 向下箭头
end;
// 绘制参考线
buy_line := DRAWLINE(1, ref_price*0.995, '买入条件', 3, 2);
sell_line := DRAWLINE(1, buy_price*1.01, '卖出条件', 2, 2);
// 绘制持仓状态标记
if position=1 then
DRAWTEXT(1, low*0.99, '持仓中', 0); // 在K线下方显示持仓状态
// 按照指定格式显示买入和卖出数量
买入数量:buy_count,linethick0;
卖出数量:sell_count,linethick0;
总持仓:total_shares,linethick0;
// 保留原有的指标显示
持仓:position,linethick0;
资产:asset,noaxis;
可用现金:cash(0),linethick0;
当前价:CLOSE;
开盘价:OPEN; |