-
Notifications
You must be signed in to change notification settings - Fork 26
/
pivothl_strategy.py
38 lines (30 loc) · 1.3 KB
/
pivothl_strategy.py
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
# -*- coding: utf-8 -*-
from strategy import Strategy
from indicator import *
from settings import settings
import logging
import logging.config
leftbars = 1
rightbars = 0
logging.config.fileConfig("logging.conf")
logger = logging.getLogger("PvtHLBot")
def pivot_highlow_strategy(ticker, ohlcv, position, balance, strategy):
# エントリー・エグジット条件作成
long_entry_price = last(pivothigh(ohlcv.high, leftbars, rightbars).ffill())
short_entry_price = last(pivotlow(ohlcv.low, leftbars, rightbars).ffill())
# ロット数計算
qty_lot = int(balance.BTC.free * 0.05 * ticker.last)
# 最大ポジション数設定
strategy.risk.max_position_size = qty_lot
# 注文(ポジションがある場合ドテン)
strategy.entry('L', 'buy', qty=qty_lot, limit=max(long_entry_price, ticker.bid), stop=long_entry_price+0.5)
strategy.entry('S', 'sell', qty=qty_lot, limit=min(short_entry_price, ticker.ask), stop=short_entry_price-0.5)
strategy = Strategy(pivot_highlow_strategy)
strategy.settings.timeframe = '1m'
strategy.settings.interval = 5
strategy.settings.apiKey = settings.apiKey
strategy.settings.secret = settings.secret
strategy.testnet.use = True
strategy.testnet.apiKey = settings.testnet_apiKey
strategy.testnet.secret = settings.testnet_secret
strategy.start()