본문 바로가기
프로젝트/코인 자동매매

파이썬 코인 자동매매 봇 만들기#5 - 시뮬레이션 첫 수익률은?

by 큰공 2021. 8. 30.
728x90
반응형

 

들어가며

2021.08.19 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#1 - pybitumb 모듈 설치하기

2021.08.21 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#2 - 24시간 변동률 정렬하기

2021.08.24 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#3 - 급등주를 찾아라

2021.08.25 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#4 - 매수 / 매도 시뮬레이션

 

파이썬 코인 자동매매 봇 만들기#4 - 매수 / 매도 시뮬레이션

들어가며 2021.08.19 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#1 - pybitumb 모듈 설치하기 2021.08.21 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#2 - 24시간 변동률 정렬하기 2021.08.24 - [IT/..

coinpipe.tistory.com

혹시나~~ 이전글을 못 보고 오신분들은 순차적으로 글을 보시고 오시는것을 추천드립니다.

 

목표

 지난글에서의 목표는

X초 동안 Y% 상승한 종목을 시장가에 매수하고, Z% 상승하면 매도하라.

 이였습니다. 하지만, 이 로직의 문제점은 매수하자 마자 Z% 에 영원히 도달하지 않을 경우, 이론상 -99.9% 까지 가더라도 매도를 하지 않는 것이 문제점이였습니다.

 

 이번에 적용할 로직은, 

X초 동안 Y% 상승한 종목을 시장가에 매수하고,

Z% 추가 상승하면 매도하고, A초 후에는 무조건 시장가에 매도한다.

 

 여기서 진행될 로직에서는 바로 "매도 타이밍의 조정" 이라는 항목이 추가되게 됩니다.

 

 아래에서는 코드와 기본로직을 설명하고, 시뮬레이션 돌린 결과를 정리해서 공유드리고자 합니다.

 

 

완성된 코드

 크게 보면 매수 로직과 매도 로직이 있는데, 이번 수정에서는 매도 로직을 수정했으므로, 매도 로직의 코드만 정리하여 공유드립니다.

# 매도 로직
sell_flag = False
buy_price = float (buy[2])

while sell_flag == False :
  current_price = pybithumb.get_current_price(buy[1])
  yield_rate = ( current_price - buy_price ) / buy_price * 100

  if ( yield_rate >= sell_ascent) :
  sell = [ str(datetime.now()), buy[1], current_price , buy_price, float('%.2f' % yield_rate) ]
  print ( 'SELL', sell )
  sell_flag = True

  if ( sell_sec > sell_time ) :
  sell = [ str(datetime.now()), buy[1], current_price , buy_price, float('%.2f' % yield_rate) ]
  print ( 'SELL', sell , "TIME_OUT" )
  sell_flag = True

  time.sleep(sell_cycle_time)
  sell_sec += sell_cycle_time

current_balance = balance + (current_price - buy_price) * ( balance / buy_price )
rate = ( current_balance - init_balance ) / init_balance * 100
print ("Current Balance : ", float('%.2f' % current_balance), "(", float('%.2f' % rate), "% )" )
balance = current_balance

 

로직 설명

 1) 앞선 로직에 의해서 매수를 한 뒤, 매도 로직으로 이동한다.

 2) 매도 flag 를 false로 지정하고, 매도가 이뤄질떄까지, 1초 간격으로 현재가를 얻어 온다.

 3) 1초 간격으로 상승률를 계산하고, 상승률이, 지정한 Z% 보다 크다면 시장가에 매도한다.

 4) 매수를 한뒤에 지나간 시간 (sell_sec) 이 A초 ( sell_time ) 보다 크다면 현재 상승률에 상관없이 매도를 진행한다.

 5) 매도 진행 후 현재 잔액과 수익률을 표시한다.

 

 

시뮬레이션 상수 값

 이번 시뮬레이션에서 지정한 상수 값은 아래와 같으며,

 

 즉, 

10초 동안 0.5% 상승한 종목을 시장가에 매수하고,

0.5% 추가 상승하면 매도하고, 600초 후에는 무조건 시장가에 매도한다.

 

 의 로직으로 진행하였습니다.

cycle_time = 10 # 초 간격으로 체크
loop_time = 60 * 120 # 초 동안 체크
ascent = 0.5 # % 상승
sell_ascent = 0.5 # 매수후 % 상승 후 매도

sell_cycle_time = 1 # 파는 간격을 초 간격으로 체크
sell_time = 600 # 초 안에는 무조건 팔기

init_balance = 1000000 # 원

 

시뮬레이션 결과

 시뮬레이션은 8월 25일에 약 7시간 동안 진행했으며, 초기잔애 백만원으로 했다고 보시면 됩니다.

BUY  ['2021-08-25 13:53:06.073609', 'AERGO', 302.5, 11.09, 10.28, 0.81]
SELL ['2021-08-25 13:56:18.044456', 'AERGO', 305.0, 302.5, 0.83]
Current Balance :  1008264.46 ( 0.83 % )
BUY  ['2021-08-25 13:56:19.113224', 'COLA', 407.9, 5.89, 5.24, 0.65]
SELL ['2021-08-25 13:58:28.231921', 'COLA', 410.2, 407.9, 0.56]
Current Balance :  1013949.7 ( 1.39 % )
BUY  ['2021-08-25 13:58:29.316608', 'COLA', 410.2, 6.55, 5.89, 0.66]
SELL ['2021-08-25 14:09:24.434060', 'COLA', 405.9, 410.2, -1.05] TIME_OUT
Current Balance :  1003320.78 ( 0.33 % )
BUY  ['2021-08-25 14:09:25.490912', 'BNT', 11970.0, 136.09, 134.52, 1.57]
SELL ['2021-08-25 14:09:57.133713', 'BNT', 12030.0, 11970.0, 0.5]
Current Balance :  1008349.96 ( 0.83 % )
BUY  ['2021-08-25 14:09:58.200316', 'BNT', 12030.0, 137.28, 136.09, 1.19]
SELL ['2021-08-25 14:11:08.550593', 'BNT', 12110.0, 12030.0, 0.67]
Current Balance :  1015055.52 ( 1.51 % )
BUY  ['2021-08-25 14:11:09.606011', 'BNT', 12140.0, 139.45, 137.28, 2.17]
SELL ['2021-08-25 14:11:54.180122', 'BNT', 12210.0, 12140.0, 0.58]
Current Balance :  1020908.4 ( 2.09 % )
BUY  ['2021-08-25 14:11:55.241149', 'BNT', 12250.0, 141.62, 139.45, 2.17]
SELL ['2021-08-25 14:22:50.391443', 'BNT', 11970.0, 12250.0, -2.29] TIME_OUT
Current Balance :  997573.35 ( -0.24 % )
BUY  ['2021-08-25 14:22:51.475046', 'RSR', 89.84, 55.84, 55.09, 0.75]
SELL ['2021-08-25 14:30:58.635883', 'RSR', 90.99, 89.84, 1.28]
Current Balance :  1010342.82 ( 1.03 % )
BUY  ['2021-08-25 14:30:59.702114', 'BNT', 12010.0, 136.88, 135.9, 0.98]
SELL ['2021-08-25 14:32:02.115885', 'BNT', 12080.0, 12010.0, 0.58]
Current Balance :  1016231.58 ( 1.62 % )
BUY  ['2021-08-25 14:32:03.174691', 'WTC', 1295.0, 13.3, 12.69, 0.61]
SELL ['2021-08-25 14:33:56.179594', 'WTC', 1310.0, 1295.0, 1.16]
Current Balance :  1028002.6 ( 2.8 % )
BUY  ['2021-08-25 14:33:57.270733', 'WTC', 1310.0, 14.61, 13.3, 1.31]
SELL ['2021-08-25 14:44:51.189824', 'WTC', 1272.0, 1310.0, -2.9] TIME_OUT
Current Balance :  998182.68 ( -0.18 % )
BUY  ['2021-08-25 14:44:52.248377', 'CTK', 3314.0, 23.56, 22.71, 0.85]
SELL ['2021-08-25 14:55:49.174825', 'CTK', 3302.0, 3314.0, -0.36] TIME_OUT
Current Balance :  994568.26 ( -0.54 % )
BUY  ['2021-08-25 14:55:50.246278', 'AERGO', 305.0, 12.34, 10.41, 1.93]
SELL ['2021-08-25 15:06:48.197726', 'AERGO', 302.8, 305.0, -0.72] TIME_OUT
Current Balance :  987394.32 ( -1.26 % )
BUY  ['2021-08-25 15:06:49.272598', 'BCHA', 120000.0, 32.38, -0.11, 32.49]
SELL ['2021-08-25 15:06:59.329854', 'BCHA', 122900.0, 120000.0, 2.42]
Current Balance :  1011256.35 ( 1.13 % )
BUY  ['2021-08-25 15:07:00.392445', 'BCHA', 122900.0, 37.89, 32.38, 5.51]
SELL ['2021-08-25 15:07:10.467543', 'BCHA', 125100.0, 122900.0, 1.79]
Current Balance :  1029358.58 ( 2.94 % )
BUY  ['2021-08-25 15:07:11.522957', 'BCHA', 127900.0, 41.09, 37.89, 3.2]
SELL ['2021-08-25 15:11:08.718733', 'BCHA', 128900.0, 127900.0, 0.78]
Current Balance :  1037406.73 ( 3.74 % )
BUY  ['2021-08-25 15:11:09.770604', 'BNT', 11250.0, 39.41, 36.98, 2.43]
SELL ['2021-08-25 15:16:29.559119', 'BNT', 11370.0, 11250.0, 1.07]
Current Balance :  1048472.4 ( 4.85 % )
BUY  ['2021-08-25 15:16:30.623844', 'BNT', 11370.0, 41.51, 39.41, 2.1]
SELL ['2021-08-25 15:27:29.766331', 'BNT', 10950.0, 11370.0, -3.69] TIME_OUT
Current Balance :  1009742.55 ( 0.97 % )
BUY  ['2021-08-25 15:27:30.888242', 'RSR', 85.58, 30.62, 21.23, 9.39]
SELL ['2021-08-25 15:33:22.567494', 'RSR', 86.18, 85.58, 0.7]
Current Balance :  1016821.84 ( 1.68 % )
BUY  ['2021-08-25 15:33:23.639235', 'BNT', 10900.0, 38.61, 29.82, 8.79]
SELL ['2021-08-25 15:34:01.859759', 'BNT', 11000.0, 10900.0, 0.92]
Current Balance :  1026150.48 ( 2.62 % )
BUY  ['2021-08-25 15:34:02.941154', 'BCHA', 126000.0, 40.17, 36.75, 3.42]
SELL ['2021-08-25 15:34:13.029907', 'BCHA', 126800.0, 126000.0, 0.63]
Current Balance :  1032665.72 ( 3.27 % )
BUY  ['2021-08-25 15:34:14.093228', 'TMTG', 4.483, 4.69, 3.92, 0.77]
SELL ['2021-08-25 15:38:36.886795', 'TMTG', 4.509, 4.483, 0.58]
Current Balance :  1038654.86 ( 3.87 % )
BUY  ['2021-08-25 15:38:37.964536', 'BCHA', 128900.0, 41.49, 39.72, 1.77]
SELL ['2021-08-25 15:39:04.141025', 'BCHA', 130200.0, 128900.0, 1.01]
Current Balance :  1049130.05 ( 4.91 % )
BUY  ['2021-08-25 15:39:05.200965', 'BCHA', 130200.0, 42.92, 41.49, 1.43]
SELL ['2021-08-25 15:39:15.277671', 'BCHA', 131000.0, 130200.0, 0.61]
Current Balance :  1055576.32 ( 5.56 % )
BUY  ['2021-08-25 15:39:16.364726', 'BCHA', 131000.0, 43.8, 42.92, 0.88]
SELL ['2021-08-25 15:39:26.414983', 'BCHA', 131700.0, 131000.0, 0.53]
Current Balance :  1061216.8 ( 6.12 % )
BUY  ['2021-08-25 15:39:27.479236', 'BCHA', 132000.0, 44.9, 43.8, 1.1]
SELL ['2021-08-25 15:41:14.416920', 'BCHA', 133000.0, 132000.0, 0.76]
Current Balance :  1069256.32 ( 6.93 % )
BUY  ['2021-08-25 15:41:15.480657', 'BCHA', 132900.0, 45.91, 44.9, 1.01]
SELL ['2021-08-25 15:52:11.555934', 'BCHA', 119400.0, 132900.0, -10.16] TIME_OUT
Current Balance :  960641.12 ( -3.94 % )
BUY  ['2021-08-25 15:52:12.615867', 'TMTG', 4.538, 5.88, 3.18, 2.7]
SELL ['2021-08-25 16:03:13.168717', 'TMTG', 4.484, 4.538, -1.19] TIME_OUT
Current Balance :  949209.96 ( -5.08 % )
BUY  ['2021-08-25 16:03:14.255727', 'BCHA', 134200.0, 46.99, 31.43, 15.56]
SELL ['2021-08-25 16:14:07.270463', 'BCHA', 120500.0, 134200.0, -10.21] TIME_OUT
Current Balance :  852308.49 ( -14.77 % )
BUY  ['2021-08-25 16:14:08.346757', 'SXP', 4957.0, 7.38, 5.98, 1.4]
SELL ['2021-08-25 16:24:46.789245', 'SXP', 4983.0, 4957.0, 0.52]
Current Balance :  856778.94 ( -14.32 % )
BUY  ['2021-08-25 16:24:47.871796', 'SXP', 4983.0, 8.28, 7.38, 0.9]
SELL ['2021-08-25 16:26:36.473627', 'SXP', 5010.0, 4983.0, 0.54]
Current Balance :  861421.33 ( -13.86 % )
BUY  ['2021-08-25 16:26:37.545713', 'BCHA', 117100.0, 27.7, 25.3, 2.4]
SELL ['2021-08-25 16:28:29.900892', 'BCHA', 117800.0, 117100.0, 0.6]
Current Balance :  866570.73 ( -13.34 % )
BUY  ['2021-08-25 16:28:30.963444', 'RSR', 85.15, 20.01, 18.3, 1.71]
SELL ['2021-08-25 16:39:28.128756', 'RSR', 84.8, 85.15, -0.41] TIME_OUT
Current Balance :  863008.79 ( -13.7 % )
BUY  ['2021-08-25 16:39:29.191246', 'BNT', 10290.0, 13.45, 5.41, 8.04]
SELL ['2021-08-25 16:50:34.258834', 'BNT', 10060.0, 10290.0, -2.24] TIME_OUT
Current Balance :  843718.99 ( -15.63 % )
BUY  ['2021-08-25 16:50:35.312515', 'BCHA', 113900.0, 23.94, 23.4, 0.54]
SELL ['2021-08-25 16:55:01.978362', 'BCHA', 115800.0, 113900.0, 1.67]
Current Balance :  857793.32 ( -14.22 % )
BUY  ['2021-08-25 16:55:03.045049', 'BCHA', 115800.0, 24.65, 23.94, 0.71]
SELL ['2021-08-25 16:55:28.209268', 'BCHA', 116400.0, 115800.0, 0.52]
Current Balance :  862237.84 ( -13.78 % )
BUY  ['2021-08-25 16:55:29.273230', 'BCHA', 116400.0, 26.66, 24.65, 2.01]
SELL ['2021-08-25 17:06:26.585521', 'BCHA', 107800.0, 116400.0, -7.39] TIME_OUT
Current Balance :  798532.99 ( -20.15 % )
BUY  ['2021-08-25 17:06:27.654416', 'BNT', 11480.0, 34.66, 14.29, 20.37]
SELL ['2021-08-25 17:06:37.741823', 'BNT', 11600.0, 11480.0, 1.05]
Current Balance :  806880.02 ( -19.31 % )
BUY  ['2021-08-25 17:06:38.828406', 'BNT', 11500.0, 35.36, 34.66, 0.7]
SELL ['2021-08-25 17:06:48.897810', 'BNT', 11600.0, 11500.0, 0.87]
Current Balance :  813896.37 ( -18.61 % )
BUY  ['2021-08-25 17:06:50.000890', 'RSR', 87.5, 28.06, 24.28, 3.78]
SELL ['2021-08-25 17:08:44.052269', 'RSR', 88.55, 87.5, 1.2]
Current Balance :  823663.12 ( -17.63 % )
BUY  ['2021-08-25 17:08:45.138953', 'AERGO', 288.3, 4.72, 3.89, 0.83]
SELL ['2021-08-25 17:12:56.324239', 'AERGO', 290.0, 288.3, 0.59]
Current Balance :  828519.97 ( -17.15 % )
BUY  ['2021-08-25 17:12:57.393976', 'BCHA', 111600.0, 21.9, 14.92, 6.98]
SELL ['2021-08-25 17:13:27.714325', 'BCHA', 112500.0, 111600.0, 0.81]
Current Balance :  835201.58 ( -16.48 % )
BUY  ['2021-08-25 17:13:28.809875', 'BCHA', 112500.0, 22.88, 21.9, 0.98]
SELL ['2021-08-25 17:13:41.036598', 'BCHA', 113400.0, 112500.0, 0.8]
Current Balance :  841883.19 ( -15.81 % )
BUY  ['2021-08-25 17:13:42.108639', 'BCHA', 113100.0, 23.54, 22.88, 0.66]
SELL ['2021-08-25 17:16:10.351381', 'BCHA', 113800.0, 113100.0, 0.62]
Current Balance :  847093.79 ( -15.29 % )
BUY  ['2021-08-25 17:16:11.434196', 'CTK', 3167.0, 8.53, 7.85, 0.68]
SELL ['2021-08-25 17:22:19.657207', 'CTK', 3186.0, 3167.0, 0.6]
Current Balance :  852175.81 ( -14.78 % )
BUY  ['2021-08-25 17:22:20.712467', 'BNT', 11130.0, 30.28, 27.5, 2.78]
SELL ['2021-08-25 17:26:09.623909', 'BNT', 11200.0, 11130.0, 0.63]
Current Balance :  857535.41 ( -14.25 % )
BUY  ['2021-08-25 17:26:10.685377', 'BCHA', 110900.0, 20.87, 19.72, 1.15]
SELL ['2021-08-25 17:37:07.685374', 'BCHA', 107000.0, 110900.0, -3.52] TIME_OUT
Current Balance :  827378.62 ( -17.26 % )
BUY  ['2021-08-25 17:37:08.745819', 'BNT', 11300.0, 30.98, 27.71, 3.27]
SELL ['2021-08-25 17:48:06.684049', 'BNT', 10840.0, 11300.0, -4.07] TIME_OUT
Current Balance :  793697.72 ( -20.63 % )
BUY  ['2021-08-25 17:48:07.741232', 'BNT', 10840.0, 34.08, 30.98, 3.1]
SELL ['2021-08-25 17:48:22.139763', 'BNT', 10920.0, 10840.0, 0.74]
Current Balance :  799555.27 ( -20.04 % )
BUY  ['2021-08-25 17:48:23.198271', 'BNT', 10920.0, 37.1, 34.08, 3.02]
SELL ['2021-08-25 17:48:41.871896', 'BNT', 11080.0, 10920.0, 1.47]
Current Balance :  811270.36 ( -18.87 % )
BUY  ['2021-08-25 17:48:42.932239', 'BNT', 11020.0, 39.37, 37.1, 2.27]
SELL ['2021-08-25 17:54:13.337778', 'BNT', 11110.0, 11020.0, 0.82]
Current Balance :  817895.98 ( -18.21 % )
BUY  ['2021-08-25 17:54:14.398579', 'CON', 5.149, 14.41, 9.77, 4.64]
SELL ['2021-08-25 17:54:24.445700', 'CON', 5.176, 5.149, 0.52]
Current Balance :  822184.81 ( -17.78 % )
BUY  ['2021-08-25 17:54:25.487605', 'BNT', 11060.0, 36.12, 35.01, 1.11]
SELL ['2021-08-25 18:05:22.805693', 'BNT', 10110.0, 11060.0, -8.59] TIME_OUT
Current Balance :  751563.15 ( -24.84 % )
BUY  ['2021-08-25 18:05:23.865727', 'SSX', 96.0, 15.34, -3.38, 18.72]
SELL ['2021-08-25 18:05:33.970576', 'SSX', 97.2, 96.0, 1.25]
Current Balance :  760957.69 ( -23.9 % )
BUY  ['2021-08-25 18:05:35.032675', 'SSX', 97.2, 16.8, 15.34, 1.46]
SELL ['2021-08-25 18:05:54.647104', 'SSX', 97.78, 97.2, 0.6]
Current Balance :  765498.39 ( -23.45 % )
BUY  ['2021-08-25 18:05:55.722532', 'BCHA', 102100.0, 11.83, 10.51, 1.32]
SELL ['2021-08-25 18:12:45.067781', 'BCHA', 102900.0, 102100.0, 0.78]
Current Balance :  771496.41 ( -22.85 % )
BUY  ['2021-08-25 18:12:46.112499', 'BNT', 10320.0, 27.02, 25.28, 1.74]
SELL ['2021-08-25 18:12:58.348004', 'BNT', 10400.0, 10320.0, 0.78]
Current Balance :  777477.01 ( -22.25 % )
BUY  ['2021-08-25 18:12:59.402127', 'BNT', 10400.0, 29.35, 27.02, 2.33]
SELL ['2021-08-25 18:15:08.130507', 'BNT', 10460.0, 10400.0, 0.58]
Current Balance :  781962.45 ( -21.8 % )
BUY  ['2021-08-25 18:15:09.192426', 'BNT', 10460.0, 30.75, 29.35, 1.4]
SELL ['2021-08-25 18:17:44.598556', 'BNT', 10520.0, 10460.0, 0.57]
Current Balance :  786447.9 ( -21.36 % )
BUY  ['2021-08-25 18:17:45.659873', 'BCHA', 103100.0, 12.92, 11.99, 0.93]
SELL ['2021-08-25 18:17:55.706758', 'BCHA', 104800.0, 103100.0, 1.65]
Current Balance :  799415.51 ( -20.06 % )
BUY  ['2021-08-25 18:17:56.766259', 'BNT', 10520.0, 31.91, 30.44, 1.47]
SELL ['2021-08-25 18:28:54.393203', 'BNT', 10310.0, 10520.0, -2.0] TIME_OUT
Current Balance :  783457.6 ( -21.65 % )
BUY  ['2021-08-25 18:28:55.437415', 'CON', 5.027, 10.58, 9.44, 1.14]
SELL ['2021-08-25 18:30:30.372532', 'CON', 5.075, 5.027, 0.95]
Current Balance :  790938.4 ( -20.91 % )
BUY  ['2021-08-25 18:30:31.428480', 'BNT', 10330.0, 29.13, 25.5, 3.63]
SELL ['2021-08-25 18:30:54.407752', 'BNT', 10440.0, 10330.0, 1.06]
Current Balance :  799360.78 ( -20.06 % )
BUY  ['2021-08-25 18:30:55.484960', 'SSX', 87.1, 4.55, 3.9, 0.65]
SELL ['2021-08-25 18:33:16.558643', 'SSX', 88.0, 87.1, 1.03]
Current Balance :  807620.53 ( -19.24 % )
BUY  ['2021-08-25 18:33:17.618418', 'BNT', 10500.0, 29.07, 27.81, 1.26]
SELL ['2021-08-25 18:44:15.365926', 'BNT', 9850.0, 10500.0, -6.19] TIME_OUT
Current Balance :  757624.98 ( -24.24 % )
BUY  ['2021-08-25 18:44:16.431210', 'POLA', 107.0, 6.68, -0.59, 7.27]
SELL ['2021-08-25 18:44:26.503735', 'POLA', 107.9, 107.0, 0.84]
Current Balance :  763997.52 ( -23.6 % )
BUY  ['2021-08-25 18:44:27.568798', 'POLA', 107.9, 7.58, 6.68, 0.9]
SELL ['2021-08-25 18:45:11.079075', 'POLA', 108.5, 107.9, 0.56]
Current Balance :  768245.89 ( -23.18 % )
BUY  ['2021-08-25 18:45:12.150942', 'CON', 5.021, 11.83, 11.11, 0.72]
SELL ['2021-08-25 18:45:55.541647', 'CON', 5.06, 5.021, 0.78]
Current Balance :  774213.14 ( -22.58 % )
BUY  ['2021-08-25 18:45:56.603399', 'CTK', 3044.0, 4.03, 3.19, 0.84]
SELL ['2021-08-25 18:56:52.538932', 'CTK', 3034.0, 3044.0, -0.33] TIME_OUT
Current Balance :  771669.74 ( -22.83 % )
BUY  ['2021-08-25 18:56:53.601532', 'CON', 5.317, 17.55, 11.83, 5.72]
SELL ['2021-08-25 18:57:21.978526', 'CON', 5.347, 5.317, 0.56]
Current Balance :  776023.71 ( -22.4 % )
BUY  ['2021-08-25 18:57:23.049681', 'CON', 5.347, 18.22, 17.55, 0.67]
SELL ['2021-08-25 19:08:19.061087', 'CON', 5.14, 5.347, -3.87] TIME_OUT
Current Balance :  745981.28 ( -25.4 % )
BUY  ['2021-08-25 19:08:20.122131', 'BNT', 9265.0, 19.16, 18.23, 0.93]
SELL ['2021-08-25 19:10:07.170956', 'BNT', 9345.0, 9265.0, 0.86]
Current Balance :  752422.56 ( -24.76 % )
BUY  ['2021-08-25 19:10:08.234753', 'BNT', 9345.0, 19.91, 19.16, 0.75]
SELL ['2021-08-25 19:10:44.315302', 'BNT', 9405.0, 9345.0, 0.64]
Current Balance :  757253.53 ( -24.27 % )
BUY  ['2021-08-25 19:10:45.371439', 'BNT', 9380.0, 23.83, 19.91, 3.92]
SELL ['2021-08-25 19:10:55.424927', 'BNT', 9430.0, 9380.0, 0.53]
Current Balance :  761290.06 ( -23.87 % )
BUY  ['2021-08-25 19:10:56.491037', 'BCHA', 97000.0, 7.42, 6.58, 0.84]
SELL ['2021-08-25 19:15:32.417695', 'BCHA', 97950.0, 97000.0, 0.98]
Current Balance :  768745.99 ( -23.13 % )
BUY  ['2021-08-25 19:15:33.483230', 'BCHA', 96450.0, 8.29, 7.42, 0.87]
SELL ['2021-08-25 19:15:43.571768', 'BCHA', 97950.0, 96450.0, 1.56]
Current Balance :  780701.61 ( -21.93 % )
BUY  ['2021-08-25 19:15:44.649269', 'BNT', 9285.0, 19.73, 17.95, 1.78]
SELL ['2021-08-25 19:16:45.423663', 'BNT', 9400.0, 9285.0, 1.24]
Current Balance :  790371.04 ( -20.96 % )
BUY  ['2021-08-25 19:16:46.490292', 'ALICE', 20800.0, 7.0, 6.22, 0.78]
SELL ['2021-08-25 19:17:13.758138', 'ALICE', 20910.0, 20800.0, 0.53]
Current Balance :  794550.89 ( -20.54 % )
BUY  ['2021-08-25 19:17:14.831440', 'BNT', 9245.0, 20.14, 19.17, 0.97]
SELL ['2021-08-25 19:28:18.334827', 'BNT', 9190.0, 9245.0, -0.59] TIME_OUT
Current Balance :  789823.97 ( -21.02 % )
BUY  ['2021-08-25 19:28:19.406311', 'ALICE', 22300.0, 14.83, 7.56, 7.27]
SELL ['2021-08-25 19:28:52.138674', 'ALICE', 22420.0, 22300.0, 0.54]
Current Balance :  794074.15 ( -20.59 % )
BUY  ['2021-08-25 19:28:53.196736', 'ALICE', 22420.0, 15.45, 14.83, 0.62]
SELL ['2021-08-25 19:29:05.428161', 'ALICE', 22610.0, 22420.0, 0.85]
Current Balance :  800803.59 ( -19.92 % )
BUY  ['2021-08-25 19:29:06.501149', 'ALICE', 22610.0, 16.43, 15.45, 0.98]
SELL ['2021-08-25 19:29:26.259220', 'ALICE', 22870.0, 22610.0, 1.15]
Current Balance :  810012.3 ( -19.0 % )
BUY  ['2021-08-25 19:29:27.326494', 'BNT', 9280.0, 19.74, 18.06, 1.68]
SELL ['2021-08-25 19:40:25.289421', 'BNT', 9125.0, 9280.0, -1.67] TIME_OUT
Current Balance :  796483.0 ( -20.35 % )
BUY  ['2021-08-25 19:40:26.352145', 'ALICE', 23200.0, 19.46, 17.77, 1.69]
SELL ['2021-08-25 19:41:45.397084', 'ALICE', 23530.0, 23200.0, 1.42]
Current Balance :  807812.28 ( -19.22 % )
BUY  ['2021-08-25 19:41:46.449369', 'BNT', 9150.0, 22.08, 18.84, 3.24]
SELL ['2021-08-25 19:52:43.058830', 'BNT', 8625.0, 9150.0, -5.74] TIME_OUT
Current Balance :  761462.4 ( -23.85 % )
BUY  ['2021-08-25 19:52:44.141136', 'BCHA', 100100.0, 10.5, 5.84, 4.66]
SELL ['2021-08-25 19:52:54.207618', 'BCHA', 101400.0, 100100.0, 1.3]
Current Balance :  771351.52 ( -22.86 % )
BUY  ['2021-08-25 19:52:55.294247', 'BCHA', 101400.0, 12.04, 10.5, 1.54]
SELL ['2021-08-25 20:03:46.873945', 'BCHA', 97500.0, 101400.0, -3.85] TIME_OUT
Current Balance :  741684.15 ( -25.83 % )
BUY  ['2021-08-25 20:03:47.932385', 'ALICE', 23410.0, 20.17, 19.29, 0.88]
SELL ['2021-08-25 20:10:11.614506', 'ALICE', 23560.0, 23410.0, 0.64]
Current Balance :  746436.51 ( -25.36 % )
BUY  ['2021-08-25 20:10:12.676748', 'ALICE', 23560.0, 21.01, 20.17, 0.84]
SELL ['2021-08-25 20:10:22.733769', 'ALICE', 23700.0, 23560.0, 0.59]
Current Balance :  750872.04 ( -24.91 % )
BUY  ['2021-08-25 20:10:23.799489', 'ALICE', 23680.0, 21.73, 21.01, 0.72]
SELL ['2021-08-25 20:10:43.590509', 'ALICE', 23800.0, 23680.0, 0.51]
Current Balance :  754677.13 ( -24.53 % )
BUY  ['2021-08-25 20:10:44.654438', 'ALICE', 23800.0, 22.24, 21.73, 0.51]
SELL ['2021-08-25 20:11:47.694998', 'ALICE', 23980.0, 23800.0, 0.76]
Current Balance :  760384.78 ( -23.96 % )
BUY  ['2021-08-25 20:11:48.750399', 'ALICE', 23980.0, 23.85, 22.24, 1.61]
SELL ['2021-08-25 20:11:58.837428', 'ALICE', 24320.0, 23980.0, 1.42]
Current Balance :  771165.88 ( -22.88 % )
BUY  ['2021-08-25 20:11:59.897304', 'ALICE', 24320.0, 25.35, 23.85, 1.5]
SELL ['2021-08-25 20:12:38.925624', 'ALICE', 24560.0, 24320.0, 0.99]
Current Balance :  778776.07 ( -22.12 % )
BUY  ['2021-08-25 20:12:40.042052', 'ALICE', 24560.0, 26.53, 25.35, 1.18]
SELL ['2021-08-25 20:13:40.649986', 'ALICE', 24700.0, 24560.0, 0.57]
Current Balance :  783215.35 ( -21.68 % )
BUY  ['2021-08-25 20:13:41.716644', 'BNT', 8520.0, 16.79, 14.14, 2.65]
SELL ['2021-08-25 20:24:43.846566', 'BNT', 8360.0, 8520.0, -1.88] TIME_OUT
Current Balance :  768507.08 ( -23.15 % )
BUY  ['2021-08-25 20:24:44.911329', 'BCHA', 99800.0, 11.45, 7.02, 4.43]
SELL ['2021-08-25 20:35:42.075675', 'BCHA', 98800.0, 99800.0, -1.0] TIME_OUT
Current Balance :  760806.6 ( -23.92 % )
BUY  ['2021-08-25 20:35:43.136931', 'BNT', 8670.0, 19.14, 12.74, 6.4]
SELL ['2021-08-25 20:36:07.334880', 'BNT', 8795.0, 8670.0, 1.44]
Current Balance :  771775.56 ( -22.82 % )
BUY  ['2021-08-25 20:36:08.388370', 'BNT', 8795.0, 20.81, 19.14, 1.67]
SELL ['2021-08-25 20:36:54.347351', 'BNT', 8845.0, 8795.0, 0.57]
Current Balance :  776163.14 ( -22.38 % )
BUY  ['2021-08-25 20:36:55.402203', 'GXC', 887.6, 3.51, 2.85, 0.66]
SELL ['2021-08-25 20:47:53.354669', 'GXC', 882.9, 887.6, -0.53] TIME_OUT
BUY  ['2021-08-25 20:47:54.411171', 'SSX', 90.0, 8.44, 5.83, 2.61]
SELL ['2021-08-25 20:48:32.201069', 'SSX', 90.53, 90.0, 0.59]
Current Balance :  776599.75 ( -22.34 % )
BUY  ['2021-08-25 20:48:33.272246', 'CTSI', 915.4, -6.49, -7.07, 0.58]
SELL ['2021-08-25 20:57:51.147607', 'CTSI', 920.1, 915.4, 0.51]
Current Balance :  780587.1 ( -21.94 % )
BUY  ['2021-08-25 20:58:08.693683', 'BNT', 9435.0, 23.33, 21.85, 1.48]
SELL ['2021-08-25 21:09:07.560361', 'BNT', 9230.0, 9435.0, -2.17] TIME_OUT
Current Balance :  771393.89 ( -22.86 % )

 장중에는 +6.98% 까지 수익률이 났으나, 결론은 -22.86% 로 마무리 지어졌다. 하면 할 수록 마이너스가 나는 느낌이여서 이 로직은 문제가 있다고 판단하여 종료하였습니다.

 

문제점 분석

 1) 너무 잦은 매매

 너무 잦은 매매가 이뤄지는거 같기도 합니다. 자동매매의 장점이자 단점이 너무 잦은 매매를 쉽게 할 수 있다인데, 이번 시뮬레이션에서는 너무 잦은 매매를 하지 않았나 생각이 듭니다.

 

 현재 시뮬레이션 로직상으로는 수수료 개념을 적용하지 않았는데, 수수료 개념까지 적용하게 되면 수익률은 더 마이너스로 될게 될 것이여서, 시간당 매매률(?) 을 좀 조절해 볼 필요성이 있어 보입니다.

 

 시간당 매매률은 "X초에서 Y% 를 상승한 것을 매수한다" Y값을 크게하고, X값을 적절히 조절하면 될 것으로 판단됩니다. X 값 무조건 크다고 해서 시간당 매매률이 하락한다고는 추정하지는 못하겠습니다.

 

 2) 손절 포인트가 시간에만 있다.

 해당 로직은 손절시에 600초 라는 시간에만 정의가 되어있어서 600초 동안 99%가 폭락하면, 얄짤없이 매도하게 된다.

즉, STOP LOSS 기능이 필요하다.

 상승은 Y% 상승이라고 제한을 둬놓고는, 아래 하락에 대해서는 제한이 없다보니, 이런 문제점이 발생한다.

 

 

맺으며

10초 동안 0.5% 상승한 종목을 시장가에 매수하고,

0.5% 추가 상승하면 매도하고, 600초 후에는 무조건 시장가에 매도한다.

9시간 시뮬레이션 결과 -22.86% 의 손해를 보았다.

 

 다음시간에는 하락에 대한 제한을 두는 STOP LOSS 기능을 구현하고, 재 시뮬레이션을 해보도록 하자.

 

 

 

728x90
반응형

댓글3