金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 6073|回复: 10

求编程

[复制链接]

2

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2021-6-1
曾用名:
发表于 2021-6-1 15:43 | 显示全部楼层 |阅读模式
周期:日内一分钟
开多条件:布林中轨上穿首根k线的收盘价,且该首根k线的最低价站在布林上轨之上。
开空条件:中轨下穿首根k线的收盘价,且该首根k线的最高价站在布林下轨之下。
平仓;收市前一分钟全平。
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-6-1 15:57 | 显示全部楼层
需要明确下:
“首根k线”这个是指今日的第一个K吗?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2021-6-1
曾用名:
 楼主| 发表于 2021-6-1 16:05 | 显示全部楼层
不是,是第一次最低价站在布林带上轨之上的这根k线。同理,空时,要求第一次最高价位于布林下轨之下的这根k线。

回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-6-1 16:19 | 显示全部楼层
[PEL] 复制代码
INPUT:M(26,5,300,30),N(2,0.1,10,1);
MID :  MA(CLOSE,M);
UPPER: MID + N*STD(CLOSE,M);
LOWER: MID - N*STD(CLOSE,M);


if cross(MID,c) and l>UPPER then buy(holding=0,1,market);
if cross(c,MID) and h<LOWER then buyshort(holding=0,1,market);


abb:=timetot0(CLOSETIME(0))-time0,NODRAW;//当前K线时间距离收盘K线结束倒计时 
abb3:=timetot0(CLOSETIME(0))-timetot0(dynainfo(207)),NODRAW;//当前时间距离收盘K时间	

IF 	(abb<N*60 and abb>=0 and (not(ISLASTBAR))) or (ISLASTBAR and  abb3>=0 and abb3<N*60) THEN   //兼顾实际交易时候的信号和历史回测信号
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);	
end

持仓:HOLDING;


代码写没什么问题。但是你这个条件几乎没有能满足的。
以开多为例又要中轨上穿收盘价,同时还要在这个K上满足最低价大于上轨。这2个条件在一个K上同时满足太难了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2021-6-1
曾用名:
 楼主| 发表于 2021-6-1 16:30 | 显示全部楼层
大师,你理解有误。我是说日内第一根k线最低价上穿上轨时,以收盘价为起点,向右划一条水平线。当布林中轨上穿这根水平线时开多。反之,开空。
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-6-1 16:37 | 显示全部楼层
所以流程是下面这样的?
先是某个K上的布林上轨下穿了当日第一个K的最低价,然后在这个K位置取它的收盘价,如果后面有某个K上满足中轨上穿这个收盘价 就开多?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2021-6-1
曾用名:
 楼主| 发表于 2021-6-1 16:54 | 显示全部楼层
先是某个K线的最低价上穿布林上轨,然后在这个K位置取它的收盘价,如果后面有某个K上满足中轨上穿这个收盘价 就开多?是这样的。
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-6-1 17:01 | 显示全部楼层
[PEL] 复制代码
INPUT:M(26,5,300,30),N(2,0.1,10,1);
MID :  MA(CLOSE,M);
UPPER: MID + N*STD(CLOSE,M);
LOWER: MID - N*STD(CLOSE,M);


PX:=VALUEWHEN(TODAYBAR=1,L);//第一个K的最低价
PY:=VALUEWHEN(TODAYBAR=1,H);//第一个K的最高价

P1:VALUEWHEN(BARSSINCE2(CROSS(PX,UPPER),TODAYBAR)=0,C);//当日第一次满足条件时候的收盘价
P2:VALUEWHEN(BARSSINCE2(CROSS(H,PY),TODAYBAR)=0,C);

if cross(MID,P1)  then buy(holding=0,1,market);//当中轨突破P1时候 开多
if cross(P2,MID)  then buyshort(holding=0,1,market);


abb:=timetot0(CLOSETIME(0))-time0,NODRAW;//当前K线时间距离收盘K线结束倒计时 
abb3:=timetot0(CLOSETIME(0))-timetot0(dynainfo(207)),NODRAW;//当前时间距离收盘K时间	

IF 	(abb<N*60 and abb>=0 and (not(ISLASTBAR))) or (ISLASTBAR and  abb3>=0 and abb3<N*60) THEN   //兼顾实际交易时候的信号和历史回测信号
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);	
end

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

使用道具 举报

2

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2021-6-1
曾用名:
 楼主| 发表于 2021-6-1 17:09 | 显示全部楼层
大师,加载一分钟图看看,能否出信号?
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-6-1 17:15 | 显示全部楼层
截图202106011714339327..png

你最好自己本地再校验下。 上面代码每日开多开空只会选择其一。看哪个条件先触发了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 19:22 , Processed in 0.235277 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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