Board logo

标题: 【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。

示例
  1. Value1 = MRO(Close>Open, 5, 1);
复制代码

作者: 龙听    时间: 2021-12-18 14:33

MRO函数程式码:
  1. inputs:
  2.         Test( truefalseseries ),
  3.         Len( numericsimple ),
  4.         Instance( numericsimple ) ;                           

  5. MRO = RecentOcc( Test, Len, Instance, 1 ) ;
复制代码
里面还套了另外一个函数:RecentOcc

RecentOcc函数程式码:
  1. inputs:
  2.         Test( truefalseseries ),
  3.         Len( numericsimple ),
  4.         Instance( numericsimple ),                           
  5.         MLFlag( numericsimple ) ;                                                   

  6. variables:
  7.         var0( 0 ),
  8.         var1( 0 ) ;

  9. if MLFlag = 1 then
  10.         var0 = 0
  11. else if MLFlag = -1 then
  12.         var0 = Len - 1 ;

  13. var1 = 0 ;

  14. while var0 >= 0 and var0 < Len and var1 < Instance
  15.         begin
  16.         if Test[var0] then
  17.                 var1 = var1 + 1 ;
  18.         var0 = var0 + MLFlag ;
  19.         end ;

  20. condition1 = var1 = Instance and Instance > 0 ;
  21. if condition1 then
  22.         RecentOcc = var0 - MLFlag + ExecOffset
  23. else
  24.         RecentOcc = -1 ;
复制代码





欢迎光临 龙听期货论坛 (http://www.qhlt.cn/) Powered by Discuz! 7.2