金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3990|回复: 10

请教老师图表程序化交易实现下列功能

[复制链接]

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
发表于 2023-8-10 20:38 | 显示全部楼层 |阅读模式
请教老师图表程序化交易实现下列功能:

多单交易
1、用全局变量记录开仓时当根K线的最低价和开仓价
2、如果  最新价 < 记录的最低价,多单平仓
3、如果  最新价 > 记录的开仓价+5个变动价位后,回撤时最新价 < 记录的开仓位,多单平仓

空单交易
1、用全局变量记录开仓时当根K线的最高价和开仓价
2、如果  最新价 > 记录的最高价,空单平仓
3、如果  最新价 < 记录的开仓价+5个变动价位后,回撤时最新价 > 记录的开仓位,空单平仓


麻烦老师实现一下,谢谢!
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-8-11 09:06 | 显示全部楼层
这种也不需要用全局变量的。
以多头为例,空头建议自行尝试下:
buy(TODAYBAR=1,1,marketr);

L1:REF(L,ENTERBARS);
IF L<L1 and ENTERBARS>0 THEN SELL(1,holding,MARKETr);
IF HHV(H,ENTERBARS)>ENTERPRICE+5*MINDIFF AND C<ENTERPRICE and ENTERBARS>0 THEN SELL(1,holding,MARKETr);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2023-8-11 10:58 | 显示全部楼层
技术009 发表于 2023-8-11 09:06
这种也不需要用全局变量的。
以多头为例,空头建议自行尝试下:
buy(TODAYBAR=1,1,marketr);

老师我还是想用全局变量的方式,因为在实际交易过程中,有出现有信号但不执行的情况,我感觉用开仓历时的方式不够精准,这种情况试了很多次了,所以这次决定改用全局变量的方式。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-8-11 13:01 | 显示全部楼层
[PEL] 复制代码
variable:l1:=0,hx:=0;
开多条件:=todaybar=1;
if 开多条件 and holding=0 then 
begin 
buy(1,1,marketr);
l1:=enterprice;
hx:=enterprice;
end 


if l<l1 and enterbars>0 and l1<>0 then 
begin 
多止损:sell(1,holding,marketr);
l1:=0;
hx:=0;
end 
//最高价大于持仓均价,更新hx
if h>hx and holding>0 and hx<>0  and enterbars>0 then hx:=c;

if hx>avgenterprice+5*mindiff and c<avgenterprice and enterbars>0 and hx<>0 and holding>0 then 
begin 
回撤止盈:sell(1,holding,marketr);
l1:=0;
hx:=0;
end 


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

使用道具 举报

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2023-8-14 20:44 | 显示全部楼层
技术009 发表于 2023-8-11 13:01
[mw_shl_code=pel,true]variable:l1:=0,hx:=0;
开多条件:=todaybar=1;
if 开多条件 and holding=0 then
...

老师,上述代码 l1:=enterprice;  hx:=enterprice; 这里获取的是开仓均价,实际是想获取开仓时当根K线的最高点和最低点。

多单交易
1、用全局变量记录开仓时当根K线的最低价和开仓价
2、如果  最新价 < 记录的最低价,多单平仓
3、如果  最新价 > 记录的开仓价+5个变动价位后,回撤时最新价 < 记录的开仓位,多单平仓

空单交易
1、用全局变量记录开仓时当根K线的最高价和开仓价
2、如果  最新价 > 记录的最高价,空单平仓
3、如果  最新价 < 记录的开仓价+5个变动价位后,回撤时最新价 > 记录的开仓位,空单平仓
回复

使用道具 举报

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2023-8-15 10:29 | 显示全部楼层
技术009 发表于 2023-8-11 13:01
[mw_shl_code=pel,true]variable:l1:=0,hx:=0;
开多条件:=todaybar=1;
if 开多条件 and holding=0 then
...

//最高价大于持仓均价,更新hx
     if h>hx and holding>0 and hx<>0  and enterbars>0 then hx:=HIGH;  //老师,这一句我感觉描述的不对,当最高价高于hx( hx=enterprice),更新hx,这种情况如果开仓后第2根、第3根、第5根最高价都是高于hx,那么只会更新最后一次成立,而不是将hx值更新到最高的那一次。

     if hx>avgenterprice+5*mindiff and c<avgenterprice and enterbars>0 and hx<>0 and holding>0 then begin
       
     回撤:sell(1,holding,marketr);

     l1:=0;

     hx:=0;

end
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-8-15 10:46 | 显示全部楼层
if 开多条件 and holding=0 then
begin
buy(1,1,marketr);
l1:=l;
hx:=enterprice;
end


//最高价大于持仓均价,更新hx
if h>hx and holding>0 and hx<>0  and enterbars>0 then hx:=h;
这里2处 改下就行了。


“ //老师,这一句我感觉描述的不对,当最高价高于hx( hx=enterprice),更新hx,这种情况如果开仓后第2根、第3根、第5根最高价都是高于hx,那么只会更新最后一次成立,而不是将hx值更新到最高的那一次。”你输出下hx看下效果就知道了。


这曲线没啥问题吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2023-8-15 20:52 | 显示全部楼层
技术009 发表于 2023-8-15 10:46
if 开多条件 and holding=0 then
begin
buy(1,1,marketr);



老师你好,代码改写了,正在验证记录数值,另外从图形显示来看,开仓后第2根才开始记录的,本非开仓当根K线开始记录,应为是采用“K线结束开仓”模式,所以多单会开在红色箭头后面这根上,所以记录时应该以这根线为初始点。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-8-16 08:49 | 显示全部楼层
and enterbars>0  这个判断去掉就行了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

75

主题

193

帖子

193

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2023-8-30 17:51 | 显示全部楼层
技术009 发表于 2023-8-16 08:49
and enterbars>0  这个判断去掉就行了。

if hx>avgenterprice+5*mindiff and c<avgenterprice and enterbars>0 and hx<>0 and holding>0 then begin

老师,这句里买入均价用 avgenterprice 表示,那卖出均价又如何表示?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-29 05:51 , Processed in 0.084016 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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