金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 8701|回复: 59

12345

[复制链接]

28

主题

153

帖子

163

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
发表于 2023-2-8 08:35 | 显示全部楼层 |阅读模式
//定义参数
Input:N(12,1,100,1);//均线和标准差参数
Num:=1;//开仓手数
//中间变量
Ma10:Ma(c,N);//10日均线
Std1:=Std(c,N);//一个标准差
Upper:=Ma10+Std1;//通道上轨
Bottom:=Ma10-Std1;//通道下轨
BuyCond:=h>ref(h,1) and l>ref(l,1) and l<=Bottom;//上涨趋势中价格触及下轨
SellCond:=h<ref(l,1) and l<ref(l,1) and h>=Upper;//下跌趋势中价格初级上轨开仓
//下单语句
if BuyCond then begin
Sellshort(holding<0,0,market);//市价平空
Buy(holding=0,Num,market);//市价开多
end
if SellCond then begin
Sell(holding>0,0,market);//市价平多
BuyShort(holding=0,Num,market);//市价开空
end
//止盈止损
Win_Buy:=h-enterprice>=2;//多头盈利2点
Win_Sell:=enterprice-l>=2;//空头盈利2点
Lose_Buy:=enterprice-l>=1.25;//多头亏损1.25点
Lose_Sell:=h-enterprice>=1.25;//空头亏损1.25点
//市价止盈止损
if Win_Buy and holding>0 then 多止盈:Sell(enterbars>0,0,market);
if Win_Sell and holding<0 then 空止盈:Sellshort(enterbars>0,0,market);
if Lose_Buy and holding>0 then 多止损:Sell(enterbars>0,0,market);
if Lose_Sell and holding<0 then 空止损:Sellshort(enterbars>0,0,market);


这个策略如何加载一个过滤均线条件,价格在均线一下禁止开仓
回复

使用道具 举报

34

主题

9006

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-2-8 08:52 | 显示全部楼层
1. 在开仓条件中增加均线判断即可

BuyCond:=h>ref(h,1) and l>ref(l,1) and l<=Bottom and ma10>close;//上涨趋势中价格触及下轨
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

28

主题

153

帖子

163

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2023-2-8 09:21 | 显示全部楼层
如果把这个策略,只做空单,不做多单,如何修改?是不是把开仓条件反过来就可
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-2-8 09:32 | 显示全部楼层
最简单方式是把空头的下单语句注释掉就行了

//下单语句
if BuyCond then begin
//Sellshort(holding<0,0,market);//市价平空
Buy(holding=0,Num,market);//市价开多
end
if SellCond then begin
Sell(holding>0,0,market);//市价平多
//BuyShort(holding=0,Num,market);//市价开空
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

28

主题

153

帖子

163

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2023-2-8 09:50 | 显示全部楼层
//定义参数
Input:N(27,1,200,1);//均线和标准差参数
Num:=1;//开仓手数
//中间变量
Ma10:Ma(c,N);//10日均线
Std1:=Std(c,N);//一个标准差
Upper:=Ma10+Std1;//通道上轨
Bottom:=Ma10-Std1;//通道下轨
//开空单
BuyCond:=h<ref(h,1) and l>ref(l,1) and l>=Bottom and ma10>close;//上涨趋势中价格触及下轨开多仓
SellCond:=h>ref(l,1) and l<ref(l,1) and h<=Upper;//下跌趋势中价格触及上轨开空仓
//开多单
BuyCond:=h>ref(h,1) and l>ref(l,1) and l>=Bottom and ma10<close;//上涨趋势中价格触及下轨开多仓
SellCond:=h<ref(l,1) and l<ref(l,1) and h<=Upper;//下跌趋势中价格触及上轨开空仓
//下空单语句
if BuyCond then begin
Sellshort(holding<0,0,limitr,c);//市价平空(market)挂单价(limitr,c)
Buy(holding=0,Num,limitr,c);//市价开多(market)挂单价(limitr,c)
end
if SellCond then begin
Sell(holding>0,0,limitr,c);//市价平多(market)挂单价(limitr,c)
BuyShort(holding=0,Num,limitr,c);//市价开空(market)挂单价(limitr,c)
end
//下多单语句
if BuyCond then begin
Sellshort(holding<0,0,limitr,c);//市价平空(market)挂单价(limitr,c)
Buy(holding=0,Num,limitr,c);//市价开多(market)挂单价(limitr,c)
end
if SellCond then begin
Sell(holding>0,0,limitr,c);//市价平多(market)挂单价(limitr,c)
BuyShort(holding=0,Num,limitr,c);//市价开空(market)挂单价(limitr,c)
end
//止盈止损
Win_Buy:=h-enterprice>=4;//多头盈利4点
Win_Sell:=enterprice-l>=4;//空头盈利4点
Lose_Buy:=enterprice-l>=5;//多头亏损5点
Lose_Sell:=h-enterprice>=5;//空头亏损5点
//市价止盈止损
if Win_Buy and holding>0 then 多止盈:Sell(enterbars>0,0,market);
if Win_Sell and holding<0 then 空止盈:Sellshort(enterbars>0,0,market);
if Lose_Buy and holding>0 then 多止损:Sell(enterbars>0,0,market);
if Lose_Sell and holding<0 then 空止损:Sellshort(enterbars>0,0,market);

我想均线上,开多仓,均线下,开空仓,修改后怎么实现不了
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-2-8 10:24 | 显示全部楼层
你这里语句都重复了,下单条件的语句和 开仓语句 整段的重复了一次。

这样结果就是 BuyCond这个条件 第一次出现时候 值是1 很快再下面 又被重复的那条语句 重新赋值为0 了。
反正就是给你反过来。

另外前面那个回复 应该是笔误给你写错了,均线上 应该是指收盘价在均线上吧。 那应该 是c>ma10

[PEL] 复制代码
//定义参数
Input:N(12,1,100,1);//均线和标准差参数
Num:=1;//开仓手数
//中间变量
Ma10:Ma(c,N);//10日均线
Std1:=Std(c,N);//一个标准差
Upper:=Ma10+Std1;//通道上轨
Bottom:=Ma10-Std1;//通道下轨
BuyCond:=h>ref(h,1) and l>ref(l,1) and l<=Bottom and ma10<close ;//上涨趋势中价格触及下轨
SellCond:=h<ref(l,1) and l<ref(l,1) and h>=Upper and ma10>close ;//下跌趋势中价格初级上轨开仓
//下单语句
if BuyCond then begin
Sellshort(holding<0,0,market);//市价平空
Buy(holding=0,Num,market);//市价开多
end
if SellCond then begin
Sell(holding>0,0,market);//市价平多
BuyShort(holding=0,Num,market);//市价开空
end
//止盈止损
Win_Buy:=h-enterprice>=2;//多头盈利2点
Win_Sell:=enterprice-l>=2;//空头盈利2点
Lose_Buy:=enterprice-l>=1.25;//多头亏损1.25点
Lose_Sell:=h-enterprice>=1.25;//空头亏损1.25点
//市价止盈止损
if Win_Buy and holding>0 then 多止盈:Sell(enterbars>0,0,market);
if Win_Sell and holding<0 then 空止盈:Sellshort(enterbars>0,0,market);
if Lose_Buy and holding>0 then 多止损:Sell(enterbars>0,0,market);
if Lose_Sell and holding<0 then 空止损:Sellshort(enterbars>0,0,market);


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

使用道具 举报

28

主题

153

帖子

163

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2023-3-11 08:29 | 显示全部楼层
你好
当前价格突破前K线最高价开多仓,
当前价格跌破前K线最低价开空仓,
这两个语句怎么写?
回复

使用道具 举报

34

主题

9006

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-3-13 11:08 | 显示全部楼层
//如果是想当前k只要突破过上跟k的最高价可以把close换成high
if close>ref(HIGH,1) then begin
开多语句
end

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

使用道具 举报

28

主题

153

帖子

163

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2023-3-20 08:44 | 显示全部楼层
开空:buyshort(开空平多条件 and holding=0,手数,limitr,昨日低点);
开多:buy(开多平空条件 and holding=0, 手数,limitr,昨日高点);


这两句语句,是先平后开,还是先开后平,或者是铜一时间开平仓
回复

使用道具 举报

34

主题

9006

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-3-20 08:49 | 显示全部楼层
都不是。这两个语句一个是开多一个是开空。在图表机制中因为不支持锁仓所以两条语句也不可能同时触发。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 04:19 , Processed in 0.310572 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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