斐波那契策略蓝图在这一部分中,赫兹量化软件将看到上述两种方式中所提每个策略的蓝图,从而了解我们需要在可视化方法中做什么。第一种方式:使用日线数据:正如我们在这里提到的,赫兹量化软件将取用日线最后一根蜡烛,并确定其开盘价、收盘价、最高价和最低价。 通过比较开盘价和收盘价,我们可以检测得到的是看涨亦或看跌蜡烛。 根据最后一根日线蜡烛的走势类型,我们将绘制斐波那契对象,并获得所需的信号。简单斐波那契系统:
添加图片注释,不超过 140 字(可选)FIBO 信号:
添加图片注释,不超过 140 字(可选)第二种方式:使用特定蜡烛数组:正如我们在这里提到的,赫兹量化软件将在数组中使用特定数量的蜡烛,并确定第一根蜡烛的开盘价、最后一根蜡烛的收盘价、最高值和最低值。 通过比较开盘价和收盘价,我们可以检测得到的是看涨亦或看跌蜡烛。 根据该数组的走势类型,我们将绘制斐波那契对象,并获得所需的信号。简单斐波那契系统 2:
添加图片注释,不超过 140 字(可选)FIBO 信号 2:
添加图片注释,不超过 140 字(可选)斐波那契交易系统在这一部分中,赫兹量化软件将学习如何基于前面提到的内容创建交易系统。 我们将创建一个程序,该程序可以在图表上返回斐波那契水平作为注释。 我们将采用两种方法,第一种是取最后的日线数据来绘制我们的斐波那契水平,另一种是取预定数量的蜡烛作为数组以备它用。 我们还将学习如何依据这两种方式返回基于斐波那契的买入和卖出信号,我们来详细查看。第一种方式:使用日线数据:简单斐波那契系统:根据此策略,赫兹量化软件将取日线数据用于斐波那契系统,以下是执行此操作的步骤:在编译之前,在源代码使用宏替换(#define)预处理语句来定义所需的对象名称。#define FIB_OBJ "Fibonacci Retracement"为 barsTotal 创建一个整数型变量。int barsTotal;之后在 onTick 中,赫兹量化软件将创建一个整数型变量,保存 iBar 函数返回的交易品种的可用历史柱线数量。 其参数为:
symbol: 为了确定所需的交易品种,我们将采用当前交易品种 _Symbol。
timeframe: 为了确定周期,我们将采用 D1 日线图。
int bars = iBars(_Symbol, PERIOD_D1);释放一个条件来检测我们需要将其用于斐波那契的日线蜡烛,因为我们需要通过 (!=) 运算符来检查 barsTotal 不等于已处理柱线数量 ,同时我们需要当前时间将大于此根日线蜡烛的结束时间。 如此,我们将使用 TimeCurrent 函数和 StringToTime 函数将包含时间的字符串转换为日期时间类型的数字。if(barsTotal != bars && TimeCurrent() > StringToTime("00:05"))一旦满足此条件,我们需要程序执行以下操作:将 bars 赋值给 barsTotal。barsTotal=bars;调用 ObjectDelete 函数删除图表上的任何 FIB_OBJ,其参数为:
chart_id: 为了确定图表标识符,我们将使用(0)表示当前图表。
name: 确定对象类型名称为(FIB_OBJ)。
添加图片注释,不超过 140 字(可选)FIBO 信号:
添加图片注释,不超过 140 字(可选)第二种方式:使用特定蜡烛数组:正如我们在这里提到的,赫兹量化软件将在数组中使用特定数量的蜡烛,并确定第一根蜡烛的开盘价、最后一根蜡烛的收盘价、最高值和最低值。 通过比较开盘价和收盘价,我们可以检测得到的是看涨亦或看跌蜡烛。 根据该数组的走势类型,我们将绘制斐波那契对象,并获得所需的信号。简单斐波那契系统 2:
添加图片注释,不超过 140 字(可选)FIBO 信号 2:
添加图片注释,不超过 140 字(可选)斐波那契交易系统在这一部分中,赫兹量化软件将学习如何基于前面提到的内容创建交易系统。 我们将创建一个程序,该程序可以在图表上返回斐波那契水平作为注释。 我们将采用两种方法,第一种是取最后的日线数据来绘制我们的斐波那契水平,另一种是取预定数量的蜡烛作为数组以备它用。 我们还将学习如何依据这两种方式返回基于斐波那契的买入和卖出信号,我们来详细查看。第一种方式:使用日线数据:简单斐波那契系统:根据此策略,赫兹量化软件将取日线数据用于斐波那契系统,以下是执行此操作的步骤:在编译之前,在源代码使用宏替换(#define)预处理语句来定义所需的对象名称。#define FIB_OBJ "Fibonacci Retracement"为 barsTotal 创建一个整数型变量。int barsTotal;之后在 onTick 中,赫兹量化软件将创建一个整数型变量,保存 iBar 函数返回的交易品种的可用历史柱线数量。 其参数为:
symbol: 为了确定所需的交易品种,我们将采用当前交易品种 _Symbol。
timeframe: 为了确定周期,我们将采用 D1 日线图。
int bars = iBars(_Symbol, PERIOD_D1);释放一个条件来检测我们需要将其用于斐波那契的日线蜡烛,因为我们需要通过 (!=) 运算符来检查 barsTotal 不等于已处理柱线数量 ,同时我们需要当前时间将大于此根日线蜡烛的结束时间。 如此,我们将使用 TimeCurrent 函数和 StringToTime 函数将包含时间的字符串转换为日期时间类型的数字。if(barsTotal != bars && TimeCurrent() > StringToTime("00:05"))一旦满足此条件,我们需要程序执行以下操作:将 bars 赋值给 barsTotal。barsTotal=bars;调用 ObjectDelete 函数删除图表上的任何 FIB_OBJ,其参数为:
chart_id: 为了确定图表标识符,我们将使用(0)表示当前图表。
name: 确定对象类型名称为(FIB_OBJ)。