金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 100020061

平仓

[复制链接]

450

主题

2689

帖子

2699

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2025-1-1 15:36 | 显示全部楼层
100020061 发表于 2025-1-1 15:29
老师,前面的代码处理不够理想,我整了下思路:
// 定义变量
VARIABLE: HHV_PRICE:=h, LLV_PRICE:=l,HH ...

遵循从左到右
截图202501011535579835.png
回复

使用道具 举报

450

主题

2689

帖子

2699

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2025-1-1 15:42 | 显示全部楼层

逐级处理逻辑,就要在前面代码中假如CONTAINED:=1;的处理

末尾再用HHV_PRICE和LLV_PRICE对处理完的K进行判断,然后重置这个持续的判断。
IS_PREV_CONTAINED1:REF(HHV_PRICE, 1) <= h AND REF(LLV_PRICE, 1) >= l;
IS_CURR_CONTAINED1:HIGH <= REF(HHV_PRICE, 1) AND LOW >= REF(LLV_PRICE, 1);

IF IS_PREV_CONTAINED1=0 and  IS_CURR_CONTAINED1=0 THEN BEGIN
        CONTAINED:=0;
        end
老师整理下,谢谢了

回复

使用道具 举报

32

主题

8040

帖子

8050

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-1-1 22:01 | 显示全部楼层
你要么重新整理下需求,说实话你的文字描述其实是非常抽象的,我很难精理解您的到底要的是什么,完全处于一种似懂非懂的不可控状态下完成的我自己也无法理解的代码逻辑的

很多时候用户的自己可能很清楚,但是描述出来外人看起来就是不好理解

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

使用道具 举报

450

主题

2689

帖子

2699

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2025-1-2 08:58 | 显示全部楼层
技术008 发表于 2025-1-1 22:01
你要么重新整理下需求,说实话你的文字描述其实是非常抽象的,我很难精理解您的到底要的是什么,完全处于一 ...

好的,我再整理下,大概就是这样效果了,还有一点点可能没处理好,我按我这个逻辑重新整理
截图202501020857224370.png
回复

使用道具 举报

450

主题

2689

帖子

2699

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2025-1-2 11:57 | 显示全部楼层
技术008 发表于 2025-1-1 22:01
你要么重新整理下需求,说实话你的文字描述其实是非常抽象的,我很难精理解您的到底要的是什么,完全处于一 ...

//定义两个K之间高低点的关系
temp1:=MAX(HIGH, REF(h, 1));//高高
temp2:=MAX(LOW, REF(l, 1));  //高低
temp3:=Min(HIGH, REF(h, 1));//低高
temp4:=Min(LOW, REF(l, 1));  //低低
// 判断前一个K线是否被包含在当前K线
IS_PREV_CONTAINED:=h[xl-1] <= h AND l[xl-1] >= l;
// 判断当前K线是否被包含在前一个K线
IS_CURR_CONTAINED:=HIGH <= h[xl-1] AND LOW >= l[xl-1];

is_bh:IS_PREV_CONTAINED or IS_CURR_CONTAINED;
当前K为1,前一个K为-1,再前一个K为-2,再再前一个K为-3
首先要判断1和-1是否存在包含关系,如果存在包含关系,同时-1和-2,-2和-3都不存在包含关系,那么就判断-1和-2是上升还是下降
ssqs:h[xl-1]>h[xl-2] and l[xl-1]>=l[xl-2];
xjqs:l[xl-1]<l[xl-2] and h[xl-1]<=h[xl-2];
判断了上升和下降就可以对1和-1进行取值计算了
if is_bh then BEGIN
if CONTAINED=0  and xjqs=1 and 非包含 then BEGIN
        HHV_PRICE:=temp3;
        LLV_PRICE:=temp4;
        CONTAINED:=1;
END
if CONTAINED1=0  and ssqs=1 and 非包含 then BEGIN
        HHV_PRICE:=temp1;
        LLV_PRICE:=temp2;
        CONTAINED1:=1;
END
end
//持续往右处理
上面的计算完成后,HHV_PRICE和LLV_PRICE为处理后的处理K的值。下一个K要继续和前一个处理完的K进行判断是否存在包含关系,如果存在,就持续前一个处理完的K和再前一个处理完的K进行判断了上升和下降,然后左同样的处理。

最终的逻辑就是当前K和前一个处理K做比较,判断是否存在包含关系,如果存在,那就用前一个处理K和再前一个处理K进行判断了上升和下降,如果上升,那么当前K的取值就是高H和高L,如果是下降那么当前K的取值就低H和低L,处理完以后持续往右处理,直到不存在包含关系为止。不存在包含关系的HHV_PRICE取原H的值,LLV_PRICE取原L的值


回复

使用道具 举报

32

主题

8040

帖子

8050

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-1-2 13:13 | 显示全部楼层
中文描述,光这个代码还是看不懂
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

32

主题

8040

帖子

8050

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-1-2 13:15 | 显示全部楼层
你这样一致述说着包含,不包含,但是怎么叫包含都没有说清楚

然后都是一种口语化的上升下降,完全的没有具体的精确定义
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

450

主题

2689

帖子

2699

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2025-1-2 13:47 | 显示全部楼层
技术008 发表于 2025-1-2 13:15
你这样一致述说着包含,不包含,但是怎么叫包含都没有说清楚

然后都是一种口语化的上升下降,完全的没有 ...

IS_PREV_CONTAINED:=h[xl-1] <= h AND l[xl-1] >= l;
// 判断当前K线是否被包含在前一个K线
IS_CURR_CONTAINED:=HIGH <= h[xl-1] AND LOW >= l[xl-1];

is_bh:IS_PREV_CONTAINED or IS_CURR_CONTAINED;
包含就是上面的定义,前一个K的高点在当前K的高低点内,或者当前K的高低点在前一个K的高低点内,这里有个问题就是,最开始要用H,L定义,后面就要用计算出来的处理K的高低点处理,要处理两次才行。
包含K都是2个K才成立,当前K判断出是否右包含关系,上升就是,有包含关系的情况下,当前K的前一个K,和当前K的前2个K做对比,这两个都是不能有包含关系的,如果有包含关系,就需要取处理后K的进行对比,如果当前K的前一个K的H和L分别大于当前K的前2个K的H和L就是上升关系,当前K就取当前包含K的最高的H和最高的L。下降也是反向判断的。
回复

使用道具 举报

450

主题

2689

帖子

2699

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2025-1-2 13:54 | 显示全部楼层
技术008 发表于 2025-1-2 13:15
你这样一致述说着包含,不包含,但是怎么叫包含都没有说清楚

然后都是一种口语化的上升下降,完全的没有 ...

如果图中2和3是包含关系,4是独立K,那么最高上升的判断就需要2和3处理完包含关系的H和L根4进行比较判断出上升还是下降,再判断出1的取值
截图202501021352427335.png
回复

使用道具 举报

32

主题

8040

帖子

8050

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-1-2 14:08 | 显示全部楼层
variable:hh=high,ll=low;

t1:=ref(h,1);
if ref(h,1)>ref(h,2) and ref(l,1)>ref(l,2) and h<ref(h,1) and l>ref(l,1) then hh:=max(h,t1);

t2:=ref(l,1);
if ref(h,1)>ref(h,2) and ref(l,1)>ref(l,2) and h<ref(h,1) and l>ref(l,1) then ll:=max(l,t2);

a1:hh;
b1:ll;


这样吗,真的非常抱歉,从这个图看好像就是这种条件判断吧,最好您自己写下,这边实在没把发很好理解您
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-7 09:55 , Processed in 0.218347 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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