Skip to content

Commit ca5d620

Browse files
committed
add inago.py
1 parent 515f97b commit ca5d620

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

inago.py

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# -*- coding: utf-8 -*-
2+
from flyerbots.strategy import Strategy
3+
from flyerbots.indicator import *
4+
from datetime import datetime, time
5+
6+
no_trade_time_range = [
7+
(time(18,55), time(19, 55)),# JST 03:55-04:55 Bitflyerメンテナンスタイム
8+
]
9+
10+
class inago:
11+
12+
def __init__(self):
13+
pass
14+
15+
def loop(self, ticker, ohlcv, strategy, **other):
16+
if len(ohlcv.close)<4:
17+
return
18+
19+
# メンテナンス時刻
20+
t = datetime.utcnow().time()
21+
coffee_break = False
22+
for s, e in no_trade_time_range:
23+
if t >= s and t <= e:
24+
logger.info('Coffee break ...')
25+
coffee_break = True
26+
break
27+
28+
# エントリー
29+
if not coffee_break:
30+
# イナゴ指標
31+
buychg = ohlcv.high[-1]-ohlcv.high[-4]
32+
sellchg = ohlcv.low[-1]-ohlcv.low[-4]
33+
34+
# quadratic1
35+
maxsize = 0.05
36+
delta_pos = strategy.position_size
37+
if delta_pos>=maxsize:
38+
buysize = 0
39+
elif delta_pos<-maxsize:
40+
buysize = maxsize
41+
else:
42+
buysize = (-maxsize/4)*(((delta_pos+maxsize)/maxsize)**2)+maxsize
43+
if delta_pos<=-maxsize:
44+
sellsize = 0
45+
elif delta_pos>maxsize:
46+
sellsize = maxsize
47+
else:
48+
sellsize = (-maxsize/4)*(((-delta_pos+maxsize)/maxsize)**2)+maxsize
49+
50+
buy = ticker.best_bid
51+
sell = ticker.best_ask
52+
if buysize>=0.01 and buychg>500:
53+
strategy.order('L', 'buy', qty=buysize, limit=buy)
54+
if sellsize>=0.01 and sellchg<-500:
55+
strategy.order('S', 'sell', qty=sellsize, limit=sell)
56+
57+
if __name__ == "__main__":
58+
import settings
59+
import logging
60+
import logging.config
61+
62+
logging.config.dictConfig(settings.loggingConf('inago.log'))
63+
logger = logging.getLogger("inago")
64+
65+
strategy = Strategy(inago().loop, 5)
66+
strategy.settings.apiKey = settings.apiKey
67+
strategy.settings.secret = settings.secret
68+
strategy.settings.disable_rich_ohlcv = True
69+
strategy.risk.max_position_size = 0.1
70+
strategy.start()

0 commit comments

Comments
 (0)