Skip to content

Latest commit

 

History

History
66 lines (33 loc) · 3.17 KB

README.md

File metadata and controls

66 lines (33 loc) · 3.17 KB

AutoNAS

A simple automatic trading strategy for NAS100 in FXCM MT4

Platform: FXCM MT4

Feature: This script is totally automatic. Manual intervention is unnecessary. It can be applied for NAS100 and USOil, with a few parameters adjusted. According to my experience, the results for NAS100 is more stable.

Known issue: Program could halt when orders openning continuously failed. This may happen when the server is busy.

You can use this script however you like.

AutoNAS

一个简单的期货自动交易策略

两年前写过一个自动交易策略,运行结果还不错,与大家共享。

介绍:

1、平台:FXCM MT4。

2、不需要任何金融知识。

3、全自动运行,不需要人工参与。

4、适用范围:(1)USOil和NAS100的历史数据验证结果很好,其中NAS100更稳定。(2)NAS100实操3个月的结果还可以。

5、存在问题:系统繁忙时会无法下单,导致程序卡死,产生无法预料的结果,希望高手继续优化。

使用方法:

1、下载并安装MT4,注册模拟账号或者真实账号,登录。

2、将代码放入指定文件夹。

3、导入代码、运行。

4、如果跑历史数据,需安装FXCM MT5。

原理:

以一个上涨周期为例,特征值为a。a是一个自定义变量,后续所有的判断阈值都和a相关。

1、初始状态,没有任何订单,记录商品的初始价格为back_price。

2、监测实时价格,并和back_price比较,判断差值是否超越阈值,此时阈值为1.5×a。

3、如价格上涨超过1.5×a,则程序会认为还将继续上涨,于是新建买单,同时更新back_price为下单时的价格。

4、建立买单后,继续监测价格波动:此时需要用到3个价格:(1)下单时的价格back_price,(2)实时价格new_price,(3)自下单后记录到的最高价格middle_price。将最高价格与下单价格之间的价差记作最大价差gap=middle_price-back_price,将实时价格与最高价格之间的回撤记作retracement=new_price-middle_price,将实时价格与下单价格之间的价差记作波动fluctuation=new_price-back_price。

5、若最大价差gap没有超过2×a,而此时的实时价格已经低于下单价格,且波动fluctuation超过了-1.5×a,则程序判断这是一次伪上涨,并即将进入下行通道,于是关闭买单,新建卖单。

6、若最大价差gap超过了2×a,但同时回撤retracement也超过了gap/2,则程序判断此次上涨周期已经结束,并即将进入下行通道,于是关闭买单,新建卖单。

7、若最大价差gap超过了4×a,则程序判断即将进入新一轮上涨周期,于是更新下单价格back_price=middle_price-1×a,并同时更新gap和fluctuation。

8、若下单时间超过6小时,且过去6小时的均值波动不超过1.3×a,且fluctuation的绝对值超过了1×a,则程序认为此次上涨周期已经结束,关闭订单,不建立新订单,并以最近1小时的均值价格作为新的back_price。

9、下降周期的判断逻辑与上涨类似,不再赘述。

原理很简单,无需金融知识,几个阈值的判断而已。

浅尝辄止,欢迎验证,不到之处请拍砖。