
等级: 新手上路
- 注册:
- 2025-1-26
- 曾用名:
|

楼主 |
发表于 2025-2-25 10:14
|
显示全部楼层
INITIAL_PRICE:=ref(close,1);
variable:flag1=0,flag2=0;
BBI:(MA(CLOSE,3)+MA(CLOSE,6)+MA(CLOSE,12)+MA(CLOSE,24))/4;
// 计算 KDJ
RSV:= (CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
// 当前价格与基准价比较
PRICE_CHANGE := (CLOSE - INITIAL_PRICE) / INITIAL_PRICE;
// 卖出条件
IF PRICE_CHANGE >= 0.08 and flag1=0 and time<145500 THEN BEGIN
sell(1,holding/2, marketr); // 卖出二分之一持仓
flag1:=1;
END
IF PRICE_CHANGE >= 0.20 and flag1=1 and time<145500 THEN BEGIN
sell(1,holding/1, marketr); // 卖出所有持仓
flag1:=0;
END
IF PRICE_CHANGE <= -0.06 and flag2=0 and time<145500 THEN BEGIN
sell(1,holding/2, marketr); // 卖出二分之一持仓
flag2:=1;
END
IF PRICE_CHANGE <= -0.10 and flag2=1 and time<145500 THEN BEGIN
sell(1,holding/1, marketr); // 卖出所有持仓
flag2:=0;
END
// BBI 和K线、D线交易逻辑,
IF CROSS(CLOSE, BBI) and K > D and holding<=5000 and time<145500 THEN BEGIN
buy(1,500, marketr); // 买入 500 股,价格不得高于昨收盘价的 1.07 倍
END
// 如果BBI低于收盘价且K值小于D值,且在交易时间内
IF CROSS(BBI, CLOSE) and K < D and time<145500 THEN BEGIN
sell(1,holding, marketr); // 卖出前次买入的 500 股
END
//在kdj指标中定义cond:cross(d,k)
IF stkindi('','kdj.cond',0,7,0) and time<145500 THEN BEGIN
sell(1,holding, marketr);
END |
|