金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3587|回复: 10

文华8的代码 求转为金字塔可用

[复制链接]

4

主题

10

帖子

10

积分

Rank: 1

等级: 新手上路

注册:
2023-2-7
曾用名:
发表于 2023-11-30 07:54 | 显示全部楼层 |阅读模式
VARIABLE:TR:=0,UP:=0,DN:=0;
N:=14;
M:=2.5;
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR1,N);
MID:= (HIGH + LOW) / 2;
UP:= MID+ATR * M;
DN:= MID-ATR * M;
TR:=IF(C>REF(UP,1),1,IF(C<REF(DN,1),0,TR));
FLAG:=TR=0 AND REF(TR,1)=1;
FLAGH:=TR=1 AND REF(TR,1)=0;
DN:=IF(TR=1 AND DN<REF(DN,1),REF(DN,1),DN);
UP:=IF(TR=0 AND UP>REF(UP,1),REF(UP,1),UP);
UP:=IF(FLAG,MID + ATR * M,UP);
DN:=IF(FLAGH,MID - ATR * M,DN);
OUTTR:=TR;
OUTUP:=UP;
OUTDN:=DN;

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-11-30 09:09 | 显示全部楼层
[PEL] 复制代码
variable:trx:=0,up:=0,dn:=0;
n:=14;
m:=2.5;
tr1:=max(max((high-low),abs(ref(close,1)-high)),abs(ref(close,1)-low));
atr:=ma(tr1,n);
mid:= (high + low) / 2;
up:= mid+atr * m;
dn:= mid-atr * m;
trx:=if(c>ref(up,1),1,if(c<ref(dn,1),0,trx));
flag:=trx=0 and ref(trx,1)=1;
flagh:=trx=1 and ref(trx,1)=0;
dn:=if(trx=1 and dn<ref(dn,1),ref(dn,1),dn);
up:=if(trx=0 and up>ref(up,1),ref(up,1),up);
up:=if(flag,mid + atr * m,up);
dn:=if(flagh,mid - atr * m,dn);
outtr:=trx;
outup:=up;
outdn:=dn;


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

使用道具 举报

4

主题

10

帖子

10

积分

Rank: 1

等级: 新手上路

注册:
2023-2-7
曾用名:
 楼主| 发表于 2023-11-30 11:32 | 显示全部楼层
有问题,不一致,按照这个来改呢?
这一截
IF C>REF(UP,1) THEN
BEGIN
TRX:=1;
END

IF C<REF(DN,1) THEN
BEGIN
TRX:=0;
END

FLAG:=TRX=0 AND REF(TRX,1)=1;
FLAGH:=TRX=1 AND REF(TRX,1)=0;

IF TRX=1 AND DN<REF(DN,1) THEN
BEGIN
DN:=REF(DN,1);
END

IF TRX=0 AND UP>REF(UP,1) THEN
BEGIN
UP:=REF(UP,1);
END

IF FLAG=1 THEN
BEGIN
UP:=MID + ATR * M;
END

DN:=IF(FLAGH,MID - ATR * M,DN);
IF FLAGH=1 THEN
BEGIN
DN:=MID - ATR * M;
END
OUTTR:=TRX;
OUTUP:=UP;
OUTDN:=DN;

主要是金字塔这里不准用REF


回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-11-30 12:52 | 显示全部楼层
参考另一个帖子里 对ref在if内部的使用。 把ref调用在if外面定义好,再在if内部使用。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

4

主题

10

帖子

10

积分

Rank: 1

等级: 新手上路

注册:
2023-2-7
曾用名:
 楼主| 发表于 2023-11-30 13:46 | 显示全部楼层
写了
LAST_DN:=REF(DN,1);
LAST_UP:=REF(UP,1);
放在前面 还是不行 不知道问题出在哪
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-11-30 14:16 | 显示全部楼层
if c>ref(up,1) then
begin
trx:=1;
end

if c<ref(dn,1) then
begin
trx:=0;
end

flag:=trx=0 and ref(trx,1)=1;
flagh:=trx=1 and ref(trx,1)=0;

lastdn:=ref(dn,1);
if trx=1 and dn<ref(dn,1) then
begin
dn:=lastdn;
end

lastup:=ref(up,1);
if trx=0 and up>ref(up,1) then
begin
up:=lastup;
end

if flag=1 then
begin
up:=mid + atr * m;
end

dn:=if(flagh,mid - atr * m,dn);
if flagh=1 then
begin
dn:=mid - atr * m;
end
outtr:=trx;
outup:=up;
outdn:=dn;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

4

主题

10

帖子

10

积分

Rank: 1

等级: 新手上路

注册:
2023-2-7
曾用名:
 楼主| 发表于 2023-11-30 19:05 | 显示全部楼层
还是不行,跟文华里面得到的trx差异很大,实际上就是supertrend指标。18年就有人在老论坛上提出类似问题,无法解决,是否是因为软件本身计算的问题?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-12-1 08:31 | 显示全部楼层
不同软件某些机制肯定有差异,但是我们对其他软件无法了解那么深入。
我建议是从最开始指标的思路出发去检验,也许在金字塔的写法 根本就不能照搬你在其他平台的代码。

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

使用道具 举报

4

主题

10

帖子

10

积分

Rank: 1

等级: 新手上路

注册:
2023-2-7
曾用名:
 楼主| 发表于 2023-12-1 09:31 | 显示全部楼层
实在是编写不出来,所以求助
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-12-1 10:04 | 显示全部楼层
我们验证了1楼公式在金字塔中的计算过程。计算结果以及执行逻辑没有问题。至于其他软件为什么会和我们产生差异,已经超出在我们技术服务范畴
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-2 19:53 , Processed in 0.091173 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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