tests: anal stretching to accomodate flake8
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
# pragma pylint: disable=missing-docstring,W0212
|
||||
|
||||
import math
|
||||
import os
|
||||
import pandas as pd
|
||||
@@ -126,9 +124,10 @@ def test_download_backtesting_testdata(default_conf, ticker_history, mocker):
|
||||
def trim_dataframe(df, num):
|
||||
new = dict()
|
||||
for pair, pair_data in df.items():
|
||||
new[pair] = pair_data[-num:] # last 50 rows
|
||||
new[pair] = pair_data[-num:] # last 50 rows
|
||||
return new
|
||||
|
||||
|
||||
def load_data_test(what):
|
||||
data = optimize.load_data(ticker_interval=1, pairs=['BTC_UNITEST'])
|
||||
data = trim_dataframe(data, -40)
|
||||
@@ -136,63 +135,66 @@ def load_data_test(what):
|
||||
|
||||
# Depending on the what parameter we now adjust the
|
||||
# loaded data:
|
||||
# pair :: [{'O': 0.123, 'H': 0.123, 'L': 0.123, 'C': 0.123, 'V': 123.123, 'T': '2017-11-04T23:02:00', 'BV': 0.123}]
|
||||
# pair :: [{'O': 0.123, 'H': 0.123, 'L': 0.123,
|
||||
# 'C': 0.123, 'V': 123.123,
|
||||
# 'T': '2017-11-04T23:02:00', 'BV': 0.123}]
|
||||
if what == 'raise':
|
||||
o = h = l = c = 0.001
|
||||
l -= 0.0001
|
||||
o = 0.001
|
||||
h = 0.001
|
||||
ll = 0.001
|
||||
c = 0.001
|
||||
ll -= 0.0001
|
||||
h += 0.0001
|
||||
for frame in pair:
|
||||
o += 0.0001
|
||||
h += 0.0001
|
||||
l += 0.0001
|
||||
ll += 0.0001
|
||||
c += 0.0001
|
||||
o = round(o,9) # round to satoshis
|
||||
h = round(h,9)
|
||||
l = round(l,9)
|
||||
c = round(c,9)
|
||||
frame['O'] = o
|
||||
frame['H'] = h
|
||||
frame['L'] = l
|
||||
frame['C'] = c
|
||||
# save prices rounded to satoshis
|
||||
frame['O'] = round(o, 9)
|
||||
frame['H'] = round(h, 9)
|
||||
frame['L'] = round(ll, 9)
|
||||
frame['C'] = round(c, 9)
|
||||
if what == 'lower':
|
||||
o = h = l = c = 0.001
|
||||
l -= 0.0001
|
||||
o = 0.001
|
||||
h = 0.001
|
||||
ll = 0.001
|
||||
c = 0.001
|
||||
ll -= 0.0001
|
||||
h += 0.0001
|
||||
for frame in pair:
|
||||
o -= 0.0001
|
||||
h -= 0.0001
|
||||
l -= 0.0001
|
||||
ll -= 0.0001
|
||||
c -= 0.0001
|
||||
o = round(o,9) # round to satoshis
|
||||
h = round(h,9)
|
||||
l = round(l,9)
|
||||
c = round(c,9)
|
||||
frame['O'] = o
|
||||
frame['H'] = h
|
||||
frame['L'] = l
|
||||
frame['C'] = c
|
||||
# save prices rounded to satoshis
|
||||
frame['O'] = round(o, 9)
|
||||
frame['H'] = round(h, 9)
|
||||
frame['L'] = round(ll, 9)
|
||||
frame['C'] = round(c, 9)
|
||||
if what == 'sine':
|
||||
i = 0
|
||||
o = h = l = c = (2 + math.sin(i/10)) / 1000
|
||||
o = (2 + math.sin(i/10)) / 1000
|
||||
h = o
|
||||
ll = o
|
||||
c = o
|
||||
h += 0.0001
|
||||
l -= 0.0001
|
||||
ll -= 0.0001
|
||||
for frame in pair:
|
||||
o = (2 + math.sin(i/10)) / 1000
|
||||
o = (2 + math.sin(i/10)) / 1000
|
||||
h = (2 + math.sin(i/10)) / 1000 + 0.0001
|
||||
l = (2 + math.sin(i/10)) / 1000 - 0.0001
|
||||
ll = (2 + math.sin(i/10)) / 1000 - 0.0001
|
||||
c = (2 + math.sin(i/10)) / 1000 - 0.000001
|
||||
|
||||
o = round(o,9) # round to satoshis
|
||||
h = round(h,9)
|
||||
l = round(l,9)
|
||||
c = round(c,9)
|
||||
frame['O'] = o
|
||||
frame['H'] = h
|
||||
frame['L'] = l
|
||||
frame['C'] = c
|
||||
# save prices rounded to satoshis
|
||||
frame['O'] = round(o, 9)
|
||||
frame['H'] = round(h, 9)
|
||||
frame['L'] = round(ll, 9)
|
||||
frame['C'] = round(c, 9)
|
||||
i += 1
|
||||
return data
|
||||
|
||||
|
||||
def simple_backtest(config, contour, num_results):
|
||||
data = load_data_test(contour)
|
||||
processed = optimize.preprocess(data)
|
||||
@@ -204,23 +206,23 @@ def simple_backtest(config, contour, num_results):
|
||||
# Test backtest on offline data
|
||||
# loaded by freqdata/optimize/__init__.py::load_data()
|
||||
|
||||
def test_backtest(default_conf, mocker):
|
||||
|
||||
def test_backtest2(default_conf, mocker):
|
||||
mocker.patch.dict('freqtrade.main._CONF', default_conf)
|
||||
data = optimize.load_data(ticker_interval=5, pairs=['BTC_ETH'])
|
||||
results = backtest(default_conf['stake_amount'], optimize.preprocess(data), 10, True)
|
||||
num_resutls = len(results)
|
||||
assert num_resutls > 0
|
||||
|
||||
|
||||
def test_processed(default_conf, mocker):
|
||||
mocker.patch.dict('freqtrade.main._CONF', default_conf)
|
||||
data = load_data_test('raise')
|
||||
processed = optimize.preprocess(data)
|
||||
assert optimize.preprocess(data)
|
||||
|
||||
|
||||
def test_raise(default_conf, mocker):
|
||||
mocker.patch.dict('freqtrade.main._CONF', default_conf)
|
||||
tests = [['raise', 359], ['lower', 0], ['sine', 1734]]
|
||||
for [contour, numres] in tests:
|
||||
simple_backtest(default_conf, contour, numres)
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user