金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4387|回复: 5

请老师协助Python翻译一个简单策略,我用这个作为学习python的模板

[复制链接]

11

主题

43

帖子

53

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
发表于 2022-4-6 18:33 | 显示全部楼层 |阅读模式
//交易品种我的自选版块
跳:=MINDIFF;
今日最高价:=hhv(h,TODAYBAR);
今日最低价:=llv(l,TODAYBAR);
前K今日最高价:=ref(今日最高价,1);
前K今日最低价:=ref(今日最低价,1);
前K收盘价:=ref(c,1);
前K最低价:=ref(l,1);
前K最高价:=ref(h,1);

上周最高价:=CALLSTOCK(STKLABEL,vtHIGH,7,-1);
上周最低价:=CALLSTOCK(STKLABEL,vtlow,7,-1);

rhh5:=stkindi('','N日线指标.n日最高价',0,6,-1);
rll5:=stkindi('','N日线指标.n日最低价',0,6,-1);
n日均价:=(前K今日最高价+前K今日最低价)/2;

openo:=valuewhen(TODAYBAR=1,o);
zrh:=valuewhen(TODAYBAR=1,ref(TODAYBAR,1));
开盘阶段:=zrh/10;

p:=26;s:=12;m:=9;
DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  := EMA(DIFF,M);
MACD := 2*(DIFF-DEA), COLORSTICK;

ma1:=ma(c,5);
ma2:=ma(c,20);

t1:=time=closetime(0);
t2:=time=closetime(1);
t3:=time=153000;
即将停盘:=t1 or t2 or t3;

保证金:=MULTIPLIER*c*0.1,linethick0;
资金:=1.5*10000;
1ss:=min(max(CEILING(资金/保证金),1),3);

variable:zss:=1ss;
if holding<>0 and enterbars=1 and t1=0 then begin zss:=zss+1;end
if t1=1 then begin zss:=1ss;end

开多条件:=ref(MACD>0 and ma1>ma2,1);
开空条件:=ref(MACD<0 and ma1<ma2,1);

允许开多:=前K今日最低价>上周最低价 and 前K收盘价>n日均价 and 即将停盘=0 and 前K收盘价>前K最低价;
允许开空:=前K今日最高价<上周最高价 and 前K收盘价<n日均价 and 即将停盘=0 and 前K收盘价<前K最高价;

if TODAYBAR=1 then begin
sell(1,0,limitr,o);
sellshort(1,0,limitr,o);
end

if TODAYBAR>开盘阶段 and 开空条件 and (前K收盘价<enterprice or 前K收盘价>openo) and h>前K收盘价+跳 then begin sell(1,0,limitr,前K收盘价+跳);end
if TODAYBAR>开盘阶段 and 开多条件 and (前K收盘价>enterprice or 前K收盘价<openo) and l<前K收盘价-跳 then begin sellshort(1,0,limitr,前K收盘价-跳);end

if TODAYBAR>开盘阶段 and holding=0 and 开多条件 and l<前K收盘价-跳 then begin buy(1,zss,limitr,前K收盘价-跳);end
if TODAYBAR>开盘阶段 and holding=0 and 开空条件 and h>前K收盘价+跳 then begin buyshort(1,zss,limitr,前K收盘价+跳);end

WARNING_DISABLE:9;
ac:='220091'; //实盘
qy:=TACCOUNT2(6,ac);
WARNING_DISABLE:4;
if t1 and currenttime>150000 and BARSTATUS=2 then begin
EXTGBDATASET('收盘权益',qy);
END

收盘权益:EXTGBDATASET('收盘权益',qy),colorwhite,linethick0;

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-4-6 19:23 | 显示全部楼层
无法翻译
python就不适合这种pel的策略,就好比你出门买个菜也要坐出租一样,这种是极其不合理和浪费效率的

如果想要学习直接看软件自带的范例就行了,均线策略就是最普通的期货单品种(这种策略根本没有意义)

另外就是看股票多因子那几个就行了,这才是用python的地方而不是什么策略都想着去用python
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

11

主题

43

帖子

53

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2022-4-9 21:28 | 显示全部楼层
continue #这个函数有问题,会导致死循环
如果你有不会导致死循环的案例,你测试后告诉我
回复

使用道具 举报

11

主题

43

帖子

53

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2022-4-9 21:28 | 显示全部楼层
i3=1
while i3 <= 15 :
    if i3 == 8 :
        print(f'有虫子,第{i3}个不吃了')
        continue #这个函数有问题,会导致死循环
    print(f'吃了第{i3}个苹果')
    i3 += 1
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-4-11 07:44 | 显示全部楼层
i3=1
while i3 <= 15 :
    if i3 == 8 :
        print(f'有虫子,第{i3}个不吃了')
        continue #这个函数有问题,会导致死循环   你自己写的结构有问题。和python的系统函数没有关系。代码自行到i3=8以后,到这就跳出循环,后面自然不会再出现累计。
    print(f'吃了第{i3}个苹果')
    i3 += 1


你可以把最后一句放到上面去

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

使用道具 举报

11

主题

43

帖子

53

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2022-4-18 22:57 | 显示全部楼层
收到,谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-13 14:53 , Processed in 0.103174 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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