金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2791|回复: 7

麻烦编写一个跨周期系统

[复制链接]

17

主题

65

帖子

75

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2023-2-27 15:32 来自手机 | 显示全部楼层 |阅读模式
本指标在周k线上使用。
开多条件1,x周期内diff均小于零。
开多条件2,x周期内macd最大值大于m。
开多条件3,y周期内的收盘价是x周期内的收盘价最低值。
开多条件4,上一个macd为负值,当前k线收盘macd变为正值时开多。
平多条件,跨周期日线上110个交易日以内,收盘价跌破买入价的百分之七十,止损。即亏损百分之三十止损不设止盈。
麻烦老师了。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-2-27 15:46 | 显示全部楼层
本帖最后由 技术009 于 2023-2-27 15:53 编辑

“y周期内的收盘价是x周期内的收盘价最低值” 这个什么意思。

“跨周期日线上110个交易日以内,收盘价跌破买入价的百分之七十”  意思是日线上收盘价跌入买入价百分之七十就平仓?且交易日跨度要在110个交易日内?如果是在周线上运行,这个效果其实不能很好的体现处出来的,因为周期调用日线 在图上 始终是调用到本周最后一个日线的位置。  

我觉得你这个应该是在日线上运行,调用周期上的指标的判断结果来,更好一点。这样更好处理止损信号。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

65

帖子

75

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-2-27 17:49 来自手机 | 显示全部楼层
“y周期内的收盘价是x周期内的收盘价最低值” 这个什么意思。这个主要是为了说明近期的价格是最低的,相当于有个背离出现
回复

使用道具 举报

17

主题

65

帖子

75

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-2-27 17:51 来自手机 | 显示全部楼层
比如y等于3,x等于20,这样的话近3个周期就是近20周期收盘价的最低点
回复

使用道具 举报

17

主题

65

帖子

75

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-2-27 17:52 来自手机 | 显示全部楼层
我觉得你这个应该是在日线上运行,调用周期上的指标的判断结果来,更好一点。这样更好处理止损信号。好的,这个就用日线吧,到时第一个条件我把macd的参数调大一点看看
回复

使用道具 举报

17

主题

65

帖子

75

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-2-28 08:08 来自手机 | 显示全部楼层
老师,到时那个macd参数直接帮我放大5倍吧,这样就跟周k一样的原理了
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-2-28 09:24 | 显示全部楼层
分为2个指标

交易指标:
[PEL] 复制代码
input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);
INPUT:X(20,1,500,1),Y(3,1,500,1),mx(0.001,-1000,1000,1);
 
{这部分算法是利用小周期价格复现当时调用到的大周期macd的数值,解决了跨周期的一个未来调用的问题。
这个效果对回测很友好,更符合实际情况,你在不同日线上都能看到一个不同的macd值,如果直接调用周线数值 多个日线下的值都只会是一样的}
EMA_S1:="X1.M1##WEEK"(S);
EMA_P1:="X1.M2##WEEK"(P);
DEA1:="X1.DEA##WEEK";

EMA_S0:=(2*C+(S-1)*EMA_S1)/(S+1);//当前的EMA(CLOSE,S)
EMA_P0:=(2*C+(P-1)*EMA_P1)/(P+1);//当前的EMA(CLOSE,p)
 
DIFF0:=EMA_S0-EMA_P0;//当前的DIFF
DEA0:=(2*DIFF0+(M-1)*DEA1)/(M+1);
MACD0 :2*(DIFF0-DEA0), COLORSTICK;

//cd即为条件1到条件3在周线上的判定
last_macd:="X1.macd1##week";//上一个周线的macd值
cd1:"X1.cd#WEEK"(X,Y,MX);
cd2:last_macd<0 and MACD0>0;//上一个周线结束时候的macd小于0,当前最新的macd大于0 开多

kd:cd1 and cd2;
pd:ENTERBARS<=110 and c<=AVGENTERPRICE*0.7;

buy(kd and holding=0,1,market);
sell(pd,holding,market);



被调用的指标X1:
[PEL] 复制代码
input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);
INPUT:X(20,1,500,1),Y(3,1,500,1),mx(100,-1000,1000,0.001);
M1:EMA(C,S);
M2:EMA(C,P);
DIFF :=M1- M2;
DEA  :=EMA(DIFF,M);
MACD1 :2*(DIFF-DEA), COLORSTICK;

macdjc:cross(diff,dea),NODRAW;//macd金叉
macdsc:cross(dea,diff),NODRAW;

//条件1到条件3的判定
cd:all(diff<0,x) and hhv(macd1,x)>mx and llv(c,y)=llv(c,x);

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-2-28 09:26 | 显示全部楼层
"老师,到时那个macd参数直接帮我放大5倍吧,这样就跟周k一样的原理了" 这个应该不需要了。我这个虽然是日线调用周线的,但是我是做了算法处理,解决了一个小引大未来调用的问题,你可以看到macd0在不同日线上macd值都是不一样,这个值就是当时实际调用到的大周期macd的值。。


然后我本地测试了下,x,y,mx 参数如果调整的不好会一个信号都没有。逻辑没问题,就是这个参数要好好设置否则就出不了信号。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 05:12 , Processed in 0.150123 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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