易得程序化交易技术论坛

登录 | 注册

积分: 0 |用户组: 游客

搜索
查看: 3180|回复: 25

自定义函数,怎么编写与通达信 drawline 函数

[复制链接]

156

主题

449

帖子

1202

积分

超级版主

Rank: 8Rank: 8

积分
1202
发表于 2024-7-3 13:46:47 | 显示全部楼层 |阅读模式
自定义函数,怎么编写与通达信 drawline相同功能的函数
回复

使用道具 举报

156

主题

449

帖子

1202

积分

超级版主

Rank: 8Rank: 8

积分
1202
 楼主| 发表于 2024-7-3 13:47:02 | 显示全部楼层
在公式编辑器里,找到自定义函数分类里的示例函数,双击学习里面的示例语法。然后参考示例,将你需要的逻辑运算用代码实现就可以了。
回复

使用道具 举报

156

主题

449

帖子

1202

积分

超级版主

Rank: 8Rank: 8

积分
1202
 楼主| 发表于 2024-7-4 10:03:22 | 显示全部楼层
有人会写吗复制通达信drawline的功能的函数
通达信的   DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND)                4个条件都支持变量
其他再没有一个软件支持的了
COND1,PRICE1,COND2,PRICE2,        这四个参数都支持变量
包括,交易师,大智慧等,,PRICE1,PRICE2, 不支持变量
回复

使用道具 举报

156

主题

449

帖子

1202

积分

超级版主

Rank: 8Rank: 8

积分
1202
 楼主| 发表于 2024-7-4 10:03:58 | 显示全部楼层
takamisaki 发表于 2024-7-4 10:03
有人会写吗复制通达信drawline的功能的函数
通达信的   DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND)       ...

不知道变量你是怎么定义,但条件变量完全没问题。

2.jpg
回复

使用道具 举报

156

主题

449

帖子

1202

积分

超级版主

Rank: 8Rank: 8

积分
1202
 楼主| 发表于 2024-7-4 10:05:24 | 显示全部楼层
takamisaki 发表于 2024-7-4 10:03
不知道变量你是怎么定义,但条件变量完全没问题。

你用过通达信的吗
如果用过,就能很容易看出来
源码改KT交易师,显示表达式没有返回值,不能用于赋值
通达信的DRAWLINE画线能赋值给变量A, 其它软件不支持.
大智慧的画直线函数DRAWLINE和通达信一样,但是为什么通达信主图却显示是斜线呢?期待老师的讲解!谢谢
这个是很久的帖子,今天回头看看,偶然之间找到了一个方法,可以把通达信的画线变直。举例:
大智慧公式:
MA5:MA(C,5);
MA13:MA(C,13);
MA55:MA(C,55);
上穿:=CROSS(MA5,MA55);
DRAWLINE( 上穿,C, C, REF(C,1), 1);
本公式通达信也可以用,但是却是斜线的,后来改了一个方式去表达,也可以了,但是还是不理想:
公式如下:
MA5:MA(C,5);
MA13:MA(C,13);
MA55:MA(C,55);
上穿:=CROSS(MA5,MA55);
推荐:=REF(C,BARSLAST(上穿));
STICKLINE(C,推荐,推荐,8,0),COLORYELLOW;
{本文为理想论坛博主「我是乐乐」的帖子,转载请注明出处。
原文链接: https://www.55188.com/thread-3821648-1-1.html}


DRAWLINE( 上穿,C, C, REF(C,1), 1);
------------------------------------------------------------------
以条件非0为起点和终点,以指定的数值为高度画线

注:条件非0 ,和条件为1 是不同的概念

上面的终点条件是C-----注意这一点

起点不说,说说终点

大智慧------从起点后找到第一个条件(C)非0点,-------当然是起点后的下一周期(C>0),也就是以起点的第二周期为终点,以前一周期的数值(REF(C,1)-------就是起点的高)为高画线,这样画出来的线当然是水平的了

通达信---------从起点后找条件(C)非0点,而每一个C都是非0的,但一个起点只能对应一个终点,于是再在那么多符合条件的点找下一个起点前的点(如果没有,就是最后一个周期为终点)(留下一个点为断点)为终点

这是我之前再网路上找的,不同软件的drawline区别

大智慧------从起点后找到第一个条件(C)非0点,-------当然是起点后的下一周期(C>0),也就是以起点的第二周期为终点,以前一周期的数值(REF(C,1)-------就是起点的高)为高画线,这样画出来的线当然是水平的了

通达信---------从起点后找条件(C)非0点,而每一个C都是非0的,但一个起点只能对应一个终点,于是再在那么多符合条件的点找下一个起点前的点(如果没有,就是最后一个周期为终点)(留下一个点为断点)为终点

这段话是关键点

易得的drawline也不能实现通达信的功能

易得的自定义函数,代码我夜不会写。好累

回复

使用道具 举报

156

主题

449

帖子

1202

积分

超级版主

Rank: 8Rank: 8

积分
1202
 楼主| 发表于 2024-7-4 10:05:37 | 显示全部楼层
takamisaki 发表于 2024-7-4 10:05
你用过通达信的吗
如果用过,就能很容易看出来
源码改KT交易师,显示表达式没有返回值,不能用于赋值

不太明白你的意图,但七点条件被赋值后,这就是个序列值,可以用序列的方式来获得每个条件成立的位置
回复

使用道具 举报

156

主题

449

帖子

1202

积分

超级版主

Rank: 8Rank: 8

积分
1202
 楼主| 发表于 2024-7-4 10:05:51 | 显示全部楼层
takamisaki 发表于 2024-7-4 10:05
不太明白你的意图,但七点条件被赋值后,这就是个序列值,可以用序列的方式来获得每个条件成立的位置 ...

起点是上一个条件的终点
回复

使用道具 举报

156

主题

449

帖子

1202

积分

超级版主

Rank: 8Rank: 8

积分
1202
 楼主| 发表于 2024-7-4 10:06:24 | 显示全部楼层
takamisaki 发表于 2024-7-4 10:05
起点是上一个条件的终点

这种语法易得肯定支持 遍历序列获得有效值就行了呗,实际上逻辑很简单,就是你需要那个节点的值

2.jpg
回复

使用道具 举报

156

主题

449

帖子

1202

积分

超级版主

Rank: 8Rank: 8

积分
1202
 楼主| 发表于 2024-7-4 10:07:16 | 显示全部楼层
takamisaki 发表于 2024-7-4 10:05
起点是上一个条件的终点

你看看这里面的示例是不是你需要的。

我指的是他说的不支持的功能,没看明白具体指的是啥。

2.jpg
回复

使用道具 举报

156

主题

449

帖子

1202

积分

超级版主

Rank: 8Rank: 8

积分
1202
 楼主| 发表于 2024-7-4 10:08:15 | 显示全部楼层
takamisaki 发表于 2024-7-4 10:07
你看看这里面的示例是不是你需要的。

我指的是他说的不支持的功能,没看明白具体指的是啥。

不是
通达信的price'是符合条件的的1,大智慧的的price则为数值不为 0 即可
就是这个区别
符合条件的1与不为0的数值
不知道你们理解了这个点没有
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|易得程序化 ( 粤ICP备2022064048号 )

GMT+8, 2025-5-4 00:43 , Processed in 0.060380 second(s), 21 queries .

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