업비트(UPBIT) API - 손절기능 제작
마스터욱
0
36
0
0
2018-08-30 22:23:37
손익 매도 기능만 탑재되어 있고, 손절 기능이 현재 없는 관계로 손절 기능을 추가했습니다.
사실 손절에 대해서는 아주 많은 고민을 했습니다.
어느시점에 손절을 걸어야 잘걸었다는 소문이 날까...
처음에는 기준을 시간으로 두었습니다.
매수후에 30분안에 손익 매도를 못했다면, 현재가로 매도가를 변경해버리는 로직이었습니다.
하지만 30분이 지나서 갑자기 떡상을 하면 어떻하지? 라는 안일한 마인드의 도출로 인해 로직을 다시 변경했습니다.
매수가에서 5% 하락하면, 손절매도 루틴을 추가했습니다.
뭐가 정답인지는 모르겠습니다...
익절 3%, 손절 5% 로직이기 때문에,
익절 두번할동안 손절 1번하면 거의 수익이 쌤쌤이라고 봐도 될거 같아요~
그러니 익절 확률이 최소 66% 이상은 되어야 이득이 되네요~
어차피 테스트 단계니 이대로 ㄱㄱ싱
- //현재가격 가져오기
- "url" => $url
- ));
- //write_log("./log/cancel_now_price.txt", $now_price_string_array);
- /*
- Array
- (
- [0] => Array
- (
- [market] => BTC-RADS
- [candle_date_time_utc] => 2018-08-30T05:52:00
- [candle_date_time_kst] => 2018-08-30T14:52:00
- [opening_price] => 0.00022473
- [high_price] => 0.00022474
- [low_price] => 0.00022471
- [trade_price] => 0.00022473
- [timestamp] => 1535608379405
- [candle_acc_trade_price] => 0.11144456297486
- [candle_acc_trade_volume] => 495.92067668
- [unit] => 1
- )
- )
- */
- $now_price = $now_price_string_array[0]['trade_price'];
- $buy_price_3per = $latest_buy['price_buy'] * 0.05;
- $buy_price_3per_minus = $latest_buy['price_buy'] - $buy_price_3per;
- //매수가격보다 5% 떨어졌으면, 그냥 팔자~(손절)
- if($buy_price_3per_minus >= $now_price)
- {
- //매도취소
- $url = "https://api.upbit.com/v1/order";
- "url" => $url,
- "post_data" => $query,
- "method" => "DELETE"
- ));
- //write_log("./log/cancel_sell_confirm.txt", $string_cancel);
- /*
- */
- // 테스트, 재매도는 시간지연이 필요한거 같아서 2018-08-30
- //여기서 볼륨을 API에서 다시 가져와야 한다...(DB에서 땡겨오면 정확하지 않으니깐...)
- //다시 매도걸기
- "market" => $latest_buy['market'],
- "side" => "ask",
- "volume" => $string_array['remaining_volume'],
- "price" => $now_price,
- "ord_type" => "limit"
- );
- write_log("./log/re_buy.txt", $query);
- /*
- Array
- (
- [market] => BTC-BLOCK
- [side] => ask
- [volume] => 16
- [price] => 0.00081755
- [ord_type] => limit
- )
- */
- $url = "https://api.upbit.com/v1/orders";
- "url" => $url,
- "post_data" => $query,
- ));
- $sql = "
- UPDATE autobit_buy_list
- SET uuid_sell = '".$sell_string_json['uuid']."',
- buy_time_end = NOW(),
- log_sell = '".$sell_string."'
- WHERE idx = ".$latest_buy['idx']."
- ";
- $this->lib['db']->query($sql);
- }