金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 245|回复: 4

能否帮忙看下有什么问题 可以帮看看吗

[复制链接]

1

主题

2

帖子

2

积分

Rank: 1

等级: 新手上路

注册:
2025-2-15
曾用名:
发表于 2025-2-15 17:27 | 显示全部楼层 |阅读模式
// 多周期均线策略
INPUT: Lots(1); // 交易手数

// 定义跨周期变量
VARIABLE: MA5_1H := 0, MA10_1H := 0;   // 1小时周期均线
VARIABLE: MA20_15M := 0, MA60_15M := 0; // 15分钟周期均线
VARIABLE: MA250_5M := 0;              // 5分钟周期均线
VARIABLE: Direction := 0;             // 方向标记(1多头,-1空头)

// 获取1小时周期MA5和MA10
MA5_1H = STKINDI('', 'MA.MA5', 0, 1, 60);  // 60分钟周期
MA10_1H = STKINDI('', 'MA.MA10', 0, 1, 60);

// 获取15分钟周期MA20和MA60
MA20_15M = STKINDI('', 'MA.MA20', 0, 1, 15); // 15分钟周期
MA60_15M = STKINDI('', 'MA.MA60', 0, 1, 15);

// 方向判定逻辑
IF MA5_1H > MA10_1H THEN BEGIN
    IF MA20_15M > MA60_15M THEN
        Direction := 1;  // 多头方向
    ELSE IF MA20_15M < MA60_15M THEN
        Direction := -1; // 空头方向
    ELSE
        Direction := 0;  // 无方向
END ELSE BEGIN
    Direction := 0;      // 不满足基础条件
END;

// 计算5分钟250均线
MA250_5M := MA(CLOSE, 250);

// 交易条件判断
COND1 := CrossOver(CLOSE, MA250_5M) AND Direction = 1;  // 多头开仓条件
COND2 := CrossUnder(CLOSE, MA250_5M) AND Direction = -1; // 空头开仓条件

// 交易指令
IF COND1 AND HOLDING <= 0 THEN
    BPK(Lots);  // 满足条件且无多仓时开多
IF COND2 AND HOLDING >= 0 THEN
    SPK(Lots);  // 满足条件且无空仓时开空

回复

使用道具 举报

38

主题

9396

帖子

9406

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-17 09:24 | 显示全部楼层
// 多周期均线策略
INPUT: Lots(1); // 交易手数

// 定义跨周期变量
VARIABLE: MA5_1H := 0, MA10_1H := 0;   // 1小时周期均线
VARIABLE: MA20_15M := 0, MA60_15M := 0; // 15分钟周期均线
VARIABLE: MA250_5M := 0;              // 5分钟周期均线
VARIABLE: Direction := 0;             // 方向标记(1多头,-1空头)

// 获取1小时周期MA5和MA10
MA5_1H = STKINDI('', 'MA.MA5', 0, 1, 60);  // 60分钟周期
MA10_1H = STKINDI('', 'MA.MA10', 0, 1, 60);

// 获取15分钟周期MA20和MA60
MA20_15M = STKINDI('', 'MA.MA20', 0, 1, 15); // 15分钟周期
MA60_15M = STKINDI('', 'MA.MA60', 0, 1, 15);

// 方向判定逻辑
IF MA5_1H > MA10_1H THEN BEGIN
    IF MA20_15M > MA60_15M THEN
        Direction := 1;  // 多头方向
    ELSE IF MA20_15M < MA60_15M THEN
        Direction := -1; // 空头方向
    ELSE
        Direction := 0;  // 无方向
END ELSE BEGIN
    Direction := 0;      // 不满足基础条件
END;

// 计算5分钟250均线
MA250_5M := MA(CLOSE, 250);

// 交易条件判断
COND1 := Cross(CLOSE, MA250_5M) AND Direction = 1;  // 多头开仓条件
COND2 := cross(MA250_5M,CLOSE) AND Direction = -1; // 空头开仓条件

// 交易指令
IF COND1 AND HOLDING <= 0 THEN
BEGIN
        sellshort(1,holding,marketr);
buy(1,Lots,marketr);  // 满足条件且无多仓时开多
end
IF COND2 AND HOLDING >= 0 THEN
BEGIN
        sell(1,holding,marketr);
buyshort(1,Lots,marketr);  // 满足条件且无空仓时开空
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

9734

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-17 09:29 | 显示全部楼层
这代码中使用的函数不是pel内置函数。
注:你的ma指标中,必须含有MA5.MA60这类的变量。否者引用失败。
(大预言模型不是神,它也得基于一定的信息,如果你不具备阅读代码的能力,等同于和它在对牛弹琴,它根本无法达成你的目标)


// 多周期均线策略
INPUT: Lots(1); // 交易手数

// 定义跨周期变量
VARIABLE: MA5_1H := 0, MA10_1H := 0;   // 1小时周期均线
VARIABLE: MA20_15M := 0, MA60_15M := 0; // 15分钟周期均线
VARIABLE: MA250_5M := 0;              // 5分钟周期均线
VARIABLE: Direction := 0;             // 方向标记(1多头,-1空头)

// 获取1小时周期MA5和MA10
MA5_1H = STKINDI('', 'MA.MA5', 0, 5);  // 60分钟周期
MA10_1H = STKINDI('', 'MA.MA10', 0, 5);

// 获取15分钟周期MA20和MA60
MA20_15M = STKINDI('', 'MA.MA20', 0, 3); // 15分钟周期
MA60_15M = STKINDI('', 'MA.MA60', 0, 3);

// 方向判定逻辑
IF MA5_1H > MA10_1H THEN BEGIN
    IF MA20_15M > MA60_15M THEN
        Direction := 1;  // 多头方向
    ELSE IF MA20_15M < MA60_15M THEN
        Direction := -1; // 空头方向
    ELSE
        Direction := 0;  // 无方向
END ELSE BEGIN
    Direction := 0;      // 不满足基础条件
END;

// 计算5分钟250均线
MA250_5M := MA(CLOSE, 250);

// 交易条件判断
COND1 := Cross(CLOSE, MA250_5M) AND Direction = 1;  // 多头开仓条件
COND2 := Cross(MA250_5M,CLOSE) AND Direction = -1; // 空头开仓条件

// 交易指令
IF COND1 THEN BEGIN
    平空:SELLSHORT(HOLDING <0,Lots,MARKET);
    开多:BUY(HOLDING = 0,Lots,MARKET);
end
IF COND2  THEN BEGIN
    平多:SELL(HOLDING >0,Lots,MARKET);
    开空:BUYSHORT(HOLDING =0,Lots,MARKET);
   
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

2

帖子

2

积分

Rank: 1

等级: 新手上路

注册:
2025-2-15
曾用名:
 楼主| 发表于 2025-2-17 20:58 | 显示全部楼层
技术006 发表于 2025-2-17 09:29
这代码中使用的函数不是pel内置函数。
注:你的ma指标中,必须含有MA5.MA60这类的变量。否者引用失败。
...

老师 我在之前的基础上改成这样,请帮个忙,
一 买入卖出条件
1、当前1小时周期的KD指标 K>D
2、当前价格>15分钟周期的60日均线
3、当前1小时周期的KD指标 K<D
4、当前价格<15分钟周期的60日均线
二 交易指令
1、当前5分钟周期的收盘价>5分钟周期的250均线且同时符合买入卖出条件1和2 ,并且当前品种无多空持仓 开多
2、当前5分钟周期的收盘价<5分钟周期的250均线且同时符合买入卖出条件3和24,并且当前品种无多空持仓 开空
三 止损
1、开多止损价: 5分钟开仓价这跟K线的前5跟K线的最低点
2、开空止损价: 5分钟开仓价这跟K线的前5跟K线的最高点
四 止盈
1、盈利1%时,回吐盈利的20% 平仓
2、盈利2%时,回吐盈利的50% 平仓
3、盈利3%时,回吐盈利的10% 平仓
回复

使用道具 举报

38

主题

9396

帖子

9406

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-18 09:08 | 显示全部楼层
cond1:stkindi('','kdj.k',0,5,0)>stkindi('','kdj.d',0,5,0);
cond2:stkindi('','ma.ma60',0,3,0)>close;

if close>ma(c,250) and cond1 and cond2 then
begin
        sellshort(1,holding,marketr);
        buy(1,1,marketr);
END
if close<ref(llv(low,5),enterbars) then sell(1,holding,marketr);


if hhv(OPENPROFITPER,enterbars)>0.01 and OPENPROFITPER<hhv(OPENPROFITPER,enterbars)*0.8 then  sell(1,holding,marketr);
if hhv(OPENPROFITPER,enterbars)>0.02 and OPENPROFITPER<hhv(OPENPROFITPER,enterbars)*0.5 then  sell(1,holding,marketr);
if hhv(OPENPROFITPER,enterbars)>0.03 and OPENPROFITPER<hhv(OPENPROFITPER,enterbars)*0.9 then  sell(1,holding,marketr);



多头的,空头的建议自己学习进行编写,代码工作很多时候需要您自己完成的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-3-14 04:18 , Processed in 0.224711 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表