金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 5675|回复: 10

请老师能帮忙改写下,谢谢

[复制链接]

10

主题

24

帖子

34

积分

Rank: 2

等级: 标准版

注册:
2021-9-1
曾用名:
发表于 2022-1-6 18:25 | 显示全部楼层 |阅读模式
老师您好!我在书上看到一个Q语言代码写的维克多123法则和2B系统,想把他们改成金字塔的语言的系统。但是没有成功,麻烦老师帮忙转编译下,十分感谢!

Q语言策略图片.rar

1.17 MB, 下载次数: 6000

策略描述图片

回复

使用道具 举报

30

主题

7077

帖子

7087

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-1-6 22:37 | 显示全部楼层
这个您最好组织下语言用中文描述清楚,这样光看图片工作人员没有办法处理的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

24

帖子

34

积分

Rank: 2

等级: 标准版

注册:
2021-9-1
曾用名:
 楼主| 发表于 2022-1-6 23:23 | 显示全部楼层
//维克多123法则策略思想
1、判断处于上升趋势:前前高点>前高点 且 前一日收盘价<前低点,则开空,止损价为前前高点
2、判断处于下跌趋势:前前低点<前低点 且 前一日收盘价>前高点,则开多,止损价为前前低点
截图202201062319588811.png
//维克多2B法则策略思想
1、判断处于上升趋势:前前高点<前高点 且 前一日收盘价<前前高点,则开空,止损价为前高点,止盈价为前前低点
2、判断处于下跌趋势:前前低点>前低点 且 前一日收盘价>前前低点,则开多,止损价为前低点,止盈价为前前高点
截图202201062322529044.png
//所需变量
open[t]:当个交易日之前第t个交易日的开盘价
close[t]:当个交易日之前第t个交易日的收盘价
high[t]:当个交易日之前第t个交易日的最高价
low[t]:当个交易日之前第t个交易日的最低价
Highp1:前高点
Highp2:前前高点
Lowp1:前低点
Lowp2:前前低点

//赋值
if max(close[3],close[1])<close[2] then BEGIN
        highp2=highp1;
        highp1=close[2];
END

if min(close[3],close[1])>close[2] then BEGIN
        lowp2=lowp1;
        lowp1=close[2];               
END
这个赋值是我照那书上改写的,不知道对不对
回复

使用道具 举报

30

主题

7077

帖子

7087

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-1-7 09:27 | 显示全部楼层
工作人员编写中,请稍后
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-7 09:44 | 显示全部楼层
有个不太明确的地方:
CLOSE[1]在你这里是前一个C的含义?还是当前所有数据第一个c的含义。金字塔里是第一个C的含义。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

7077

帖子

7087

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-1-7 10:10 | 显示全部楼层
维克多123法则

variable:highp1=0,highp2=0,lowp1=0,lowp2=0;

temp:=ref(close,2);
if max(ref(close,3),ref(close,1))<ref(close,2) then BEGIN
        highp2:=highp1;
        highp1:=temp;
END

if min(ref(close,3),ref(close,1))>ref(close,2) then BEGIN
        lowp2:=lowp1;
        lowp1:=temp;               
END

if highp2>HIGHP1 and ref(close,1)<lowp1 and holding<=0 then
begin
        sell(1,holding,marketr);
        buyshort(1,1,marketr);
END


if lowp2<lowp1 and ref(close,1)>highp1 and holding>=0 then
begin
        sellshort(1,holding,marketr);
        buy(1,1,marketr);
END

if holding<0 and close>ref(highp2,enterbars) then sellshort(1,holding,marketr);
if holding>0 and close<ref(lowp2,enterbars) then sell(1,holding,marketr);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

7077

帖子

7087

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-1-7 10:13 | 显示全部楼层
第二个


variable:highp1=0,highp2=0,lowp1=0,lowp2=0;

temp:=ref(close,2);
if max(ref(close,3),ref(close,1))<ref(close,2) then BEGIN
        highp2:=highp1;
        highp1:=temp;
END

if min(ref(close,3),ref(close,1))>ref(close,2) then BEGIN
        lowp2:=lowp1;
        lowp1:=temp;               
END

if highp2<HIGHP1 and ref(close,1)<highp2 and holding<=0 then
begin
        sell(1,holding,marketr);
        buyshort(1,1,marketr);
END


if lowp2>lowp1 and ref(close,1)>lowp2 and holding>=0 then
begin
        sellshort(1,holding,marketr);
        buy(1,1,marketr);
END

if holding<0 and close>ref(highp1,enterbars) then sellshort(1,holding,marketr);
if holding>0 and close<ref(lowp1,enterbars) then sell(1,holding,marketr);

//止盈
if holding<0 and close<ref(lowp2,enterbars) then sellshort(1,holding,marketr);
if holding>0 and close>ref(highp2,enterbars) then sell(1,holding,marketr);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

10

主题

24

帖子

34

积分

Rank: 2

等级: 标准版

注册:
2021-9-1
曾用名:
 楼主| 发表于 2022-1-7 12:10 | 显示全部楼层
辛苦啦!我测试了下,感觉跟原版不太对,主要在以下两方面:1、要跳过前3根BAR,从第4根BAR开始,在第4根BAR生成的时候,将Highp1:前高点
Highp2:前前高点
Lowp1:前低点
Lowp2:前前低点,这四个点全部赋值为:ref(close,3),然后再做比较赋值。
2、原版的开仓,对BAR的数量有要求:if bar.count > pos.lastexitbar and holding=0; 截图202201071205006027.jpg 具体如上图,加了个止盈比例GetprofitRotio,看下老师能否帮修改完善下,谢谢老师!
回复

使用道具 举报

30

主题

7077

帖子

7087

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-1-7 13:27 | 显示全部楼层
variable:highp1=0,highp2=0,lowp1=0,lowp2=0;

temp:=ref(close,2);
if max(ref(close,3),ref(close,1))<ref(close,2) then BEGIN
        highp2:=highp1;
        highp1:=temp;
END

if min(ref(close,3),ref(close,1))>ref(close,2) then BEGIN
        lowp2:=lowp1;
        lowp1:=temp;               
END

temp2:=ref(close,3);
if todaybar<=4 then
begin
        lowp2:=temp2;
        lowp1:=temp2;
        highp2:=temp2;
        highp1:=temp2;
end

if highp2>HIGHP1 and ref(close,1)<lowp1 and holding<=0 then
begin
        sell(1,holding,marketr);
        buyshort(1,1,marketr);
END


if lowp2<lowp1 and ref(close,1)>highp1 and holding>=0 then
begin
        sellshort(1,holding,marketr);
        buy(1,1,marketr);
END



if holding<0 and close>ref(highp2,enterbars) then sellshort(1,holding,marketr);
if holding>0 and close<ref(lowp2,enterbars) then sell(1,holding,marketr);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

7077

帖子

7087

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-1-7 13:29 | 显示全部楼层
variable:highp1=0,highp2=0,lowp1=0,lowp2=0;

temp:=ref(close,2);
if max(ref(close,3),ref(close,1))<ref(close,2) then BEGIN
        highp2:=highp1;
        highp1:=temp;
END

if min(ref(close,3),ref(close,1))>ref(close,2) then BEGIN
        lowp2:=lowp1;
        lowp1:=temp;               
END

temp2:=ref(close,3);
if todaybar<=4 then
begin
        lowp2:=temp2;
        lowp1:=temp2;
        highp2:=temp2;
        highp1:=temp2;
end

if highp2<HIGHP1 and ref(close,1)<highp2 and holding<=0 then
begin
        sell(1,holding,marketr);
        buyshort(1,1,marketr);
END


if lowp2>lowp1 and ref(close,1)>lowp2 and holding>=0 then
begin
        sellshort(1,holding,marketr);
        buy(1,1,marketr);
END



if holding<0 and close>ref(highp1,enterbars) then sellshort(1,holding,marketr);
if holding>0 and close<ref(lowp1,enterbars) then sell(1,holding,marketr);

//止盈
if holding<0 and close<ref(lowp2,enterbars) then sellshort(1,holding,marketr);
if holding>0 and close>ref(highp2,enterbars) then sell(1,holding,marketr);

//百分比止盈
if holding<0 and (AVGENTERPRICE-close)/AVGENTERPRICE>0.05 then sellshort(1,holding,marketr);
if holding>0 and (close-AVGENTERPRICE)/AVGENTERPRICE>0.05then sell(1,holding,marketr);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 21:24 , Processed in 0.318095 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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