金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3618|回复: 6

帮写一个简单策略

[复制链接]

81

主题

353

帖子

353

积分

等级: 已到期

注册:
2021-10-18
曾用名:
发表于 2021-10-22 14:06 | 显示全部楼层 |阅读模式
后台股票1、AB条件同时满足时,B条件高于A条件,只开仓B。

2、A条件满足时,开仓A。
3、B满足时,A仍在持仓,则加仓2万。
4、平仓重置。
多谢~~
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-22 14:37 | 显示全部楼层
本帖最后由 技术009 于 2021-10-25 11:06 编辑

[PEL] 复制代码
GLOBALVARIABLE:A:=0;//全局变量记录A是否开过仓


input:n(9,1,100,10),p1(3,2,40,4),p2(3,2,40,4);//参数设置
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,P1,1);
D:SMA(K,P2,1);
J:3*K-2*D,NODRAW;
kdjjc:cross(k,d),NODRAW;//kdj金叉   A条件
kdjsc:cross(d,k),NODRAW;


input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);
DIFF :EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :EMA(DIFF,M);
MACD1 :2*(DIFF-DEA), COLORSTICK;
macdjc:cross(diff,dea),NODRAW;//macd金叉 B条件
macdsc:cross(dea,diff),NODRAW;


ss1:=100;//A开仓手数
ss2:=200;//B开仓手数


if kdjjc and  macdjc then //同时满足 开仓B的手数
begin 
tbuy(1,ss2,Mkt);        
end 

if kdjjc and  not(macdjc) then //满足A,不满足B 开仓A的手数 同时全局变量进行记录
begin 
tbuy(1,ss1,Mkt);
A:=1;        
end 


if macdjc AND A then //满足B条件且 有A的持仓
begin 
ss:=INTPART((20000)/(100*c))*100;//按照2万资金以及最新价计算的股数
tbuy(1,ss,MKT);
end 

IF (macdsc OR  kdjsc) AND TBUYHOLDINGEX('','',0)>0 THEN //平仓时候重置全局变量
BEGIN 
TSELL(1,0,MKT);
A:=0;
END


以此为例作为参考。你理清其中的逻辑就可以应用到你自己代码里了。只需把其中条件置换成你自己的开仓条件即可。
需要注意的是:
1.每次重启程序,都会重置。GLOBALVARIABLE 全局变量的记录仅仅每次运行期间保存。
2.股票市价下单。交易柜台是按照涨停价判断你资金释放充足的。例子里都是市价,可以自行改成限价下单。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

81

主题

353

帖子

353

积分

等级: 已到期

注册:
2021-10-18
曾用名:
 楼主| 发表于 2021-10-25 09:55 | 显示全部楼层
技术009 发表于 2021-10-22 14:37
[mw_shl_code=pel,true]GLOBALVARIABLE:A:=0;//全局变量记录A是否开过仓

not () 在后台不行
在图表是可以的。
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-25 10:08 | 显示全部楼层
“not () 在后台不行”啥意思?我这里没用到这个函数吧。而且这个函数图表后台都可以的呀。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

81

主题

353

帖子

353

积分

等级: 已到期

注册:
2021-10-18
曾用名:
 楼主| 发表于 2021-10-25 10:50 | 显示全部楼层
技术009 发表于 2021-10-25 10:08
“not () 在后台不行”啥意思?我这里没用到这个函数吧。而且这个函数图表后台都可以的呀。

TBUY(kd3)在前的
TBUY(kd2 and not(kd3)
KD3就是B
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-25 11:18 | 显示全部楼层
1.not是可用的。
2.你这个问题描述的太少了。前后因果你具体说明下,否则我不是很清楚你本地什么情况了。

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

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-25 11:28 | 显示全部楼层
你这个逻辑实际上开仓最简单的情况下 就下面几种
a满足,b不满足
a,b都满足
b,满足,有a持仓,且a不满
b,满足,没有a持仓,且a不满足

如果a,b是可能持续性满足的条件,那么情况会更多更复杂。范例的金叉死叉 这个是最基础的情况了。

范例里没完全处理全部情况。然后你这个条件别直接放到tbuy参数里去,这样不好控制的。就按照范例的方式去控制。
只要覆盖全局情况,总有一个符合条件的if会满足,并执行后面的下单。



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 23:21 , Processed in 0.149257 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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