-
Notifications
You must be signed in to change notification settings - Fork 4
142 lines (140 loc) · 3.89 KB
/
backtest.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
---
name: Backtest
# yamllint disable-line rule:truthy
on:
pull_request:
branches:
- 'master'
- 'dev*'
paths-ignore:
- '*.md'
- '.git*'
push:
branches:
- 'master'
- 'dev*'
paths-ignore:
- '*.md'
- '.git*'
jobs:
Compile-EA:
defaults:
run:
shell: powershell
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
submodules: 'recursive'
- uses: actions/checkout@v3
with:
path: Include/EA31337-classes
ref: v2.013
repository: EA31337/EA31337-classes
- name: Enables input mode
run: echo '#define __input__' > config/define.h
- name: Enables resource mode
run: echo '#define __resource__' >> config/define.h
- name: Compile strategy for MQL4
uses: fx31337/mql-compile-action@master
with:
include: .
init-platform: true
mt-version: 5.0.0.2361
path: Stg_SAWA.mq4
verbose: true
- uses: actions/checkout@v3
with:
path: indicators-other/PriceBands/Include/EA31337-classes
ref: v2.013
repository: EA31337/EA31337-classes
- name: Compile strategy for MQL5
uses: fx31337/mql-compile-action@master
with:
include: .
mt-version: 5.0.0.2515
path: Stg_SAWA.mq5
verbose: true
- name: List compiled files
run: '(Get-ChildItem -Recurse -Path . -Include *.ex[45]).fullname'
- run: Get-Location
- name: Upload strategy artifacts
uses: actions/upload-artifact@v2
with:
name: EA
path: '*.ex?'
Compile-Indicators:
defaults:
run:
shell: powershell
working-directory: indicators-other
runs-on: windows-latest
strategy:
matrix:
file:
- indicators-other/PriceBands/SAWA
steps:
- uses: actions/checkout@v3
with:
submodules: 'recursive'
- uses: actions/checkout@v3
with:
path: Include/EA31337-classes
ref: v2.013
repository: EA31337/EA31337-classes
- name: Compile required indicator for MQL4
uses: fx31337/mql-compile-action@master
with:
include: .
init-platform: true
mt-version: 5.0.0.2361
path: ${{ matrix.file }}.mq4
verbose: true
- name: Compile required indicator for MQL5
uses: fx31337/mql-compile-action@master
with:
include: .
init-platform: true
mt-version: 5.0.0.2515
path: ${{ matrix.file }}.mq5
verbose: true
- name: List compiled files
run: '(Get-ChildItem -Recurse -Path . -Include *.ex[45]).fullname'
- run: Get-Location
- name: Upload indicator artifacts
uses: actions/upload-artifact@v2
with:
name: Indicators
path: '**/*.ex?'
Test:
needs: [Compile-EA, Compile-Indicators]
runs-on: ubuntu-latest
strategy:
matrix:
month: [1]
year: [2019, 2020]
steps:
- uses: actions/download-artifact@v2
with:
path: .
- name: Run strategy
uses: ea31337/mql-tester-action@master
with:
RunOnStart: >-
ln -fsv /github/workspace/Indicators
"$TERMINAL_DIR/$MQL_DIR/Indicators"
BtDeposit: 100000
BtDest: ${{ github.workspace }}/_results
BtMonths: ${{ matrix.month }}
BtYears: ${{ matrix.year }}
OptFormatBrief: true
OptFormatJson: true
OptVerbose: true
TestExpert: Stg_SAWA
TestPeriod: M1
TestReportName: Report-${{ matrix.year }}-${{ matrix.month }}
- name: Upload results
uses: actions/upload-artifact@v2
with:
name: results
path: ${{ github.workspace }}/_results/*.*