标题:
【MRO 函数】使用方法
[打印本页]
作者:
龙听
时间:
2021-12-18 14:28
标题:
【MRO 函数】使用方法
【MRO 函数】
返回指定表达式为 True 的之前柱状线数量。或者,如果指定的表达式在最后 x 根柱状线内没有发生,该函数将如是通知您。
语法
MRO(Test, Length, Instance)
返回(整数)
包含指定表达式 为
True
的之前柱状线数量的数值,如果在最后 Length 条柱状线内表达式均不为
True
,则返回 -1。参数
名称
类型
说明
Test
TrueFalse
设置要检查的 True/False 表达式(即 Close > Open)。
Length
数值
设置要检查的柱状线数量。
Instance
数值
设置发生顺序,例如 1 = 最近发生,2 = 次最近发生,以此类推。
注
MRO 专门用于确定特定条件发生的时间。它从当前柱状线开始检查并逐渐远离当前柱状线。
该函数返回表示满足 true/false 表达式的之前柱状线数量的数值,即 0 = 当前柱状线,1 = 前 1 根柱状线,2 = 前 2 根柱状线...。如果函数没有在指定 Length 内找到满足条件的柱状线,则返回 -1。
在分析技术中使用 MRO 函数时,始终要检查 MRO 函数的结果后才能将其值用于另一计算或函数。如果在 Length 条柱状线以外发生条件,则返回 -1。
示例
Value1 = MRO(Close>Open, 5, 1);
复制代码
作者:
龙听
时间:
2021-12-18 14:33
MRO函数程式码:
inputs:
Test( truefalseseries ),
Len( numericsimple ),
Instance( numericsimple ) ;
MRO = RecentOcc( Test, Len, Instance, 1 ) ;
复制代码
里面还套了另外一个函数:RecentOcc
RecentOcc函数程式码:
inputs:
Test( truefalseseries ),
Len( numericsimple ),
Instance( numericsimple ),
MLFlag( numericsimple ) ;
variables:
var0( 0 ),
var1( 0 ) ;
if MLFlag = 1 then
var0 = 0
else if MLFlag = -1 then
var0 = Len - 1 ;
var1 = 0 ;
while var0 >= 0 and var0 < Len and var1 < Instance
begin
if Test[var0] then
var1 = var1 + 1 ;
var0 = var0 + MLFlag ;
end ;
condition1 = var1 = Instance and Instance > 0 ;
if condition1 then
RecentOcc = var0 - MLFlag + ExecOffset
else
RecentOcc = -1 ;
复制代码
欢迎光临 龙听期货论坛 (http://www.qhlt.cn/)
Powered by Discuz! 7.2