Create trading strategies group-6

in #kr10 years ago

이론적으로 승과 패가 50:50의 균형을 이루는 트레이딩 세계에서 2%정도의 우위를 가질 수 있다면 이것은 매우 큰 의미를 지니게 됩니다.
카지노처럼 5%를 전후로 하는 우위를 가질 수 있다면 이보다 좋은것은 없겠지만 이는 현실적으로 불가능 할지도 모릅니다. 저는 트레이딩 세계에서 2%우위도 굉창히 큰 것이라고 믿는 사람입니다. 어제까지의 노력으로 51.16%의 승률을 보이는 진입규칙을 찾았습니다 .
오늘은 여기에 1%정도를 더 보태보려고 합니다.
내가 상상해볼 수 있는 여러가지 아이디어를 실험해 보았지만 어느것도 만족스런 결과를 얻지 못했습니다.
높은 확률로 의미 있을거 같은 몇가지 예를 들어보겠습니다.

1.60일 (장기이동평균선) 이동평균선이 상승 중이면 매도를 하지 않고, 하락중이면 매수를 하지 않는 조건을 추가해 본다.
2.매수를 하기 위해서는 해당 봉의 종가가 5일 이동평균선 위에 위치 하여야 하고 매도를 하기 위해서는 해당봉의 종가가 5일 이동평균선 아래에 위치하여야 한다.
3.매수를 하려면 당일 시가 위에서만 하고 매도를 하려면 당일 시가 아래에서만 한다.
4.5일이평이 20일 이평 위에 위치한 경우에는 매도를 하지 않고 반대의 경우에는 매수를 하지 않는다.

이중 4번째 경우의 코드는 다음과 같습니다.

VAR10 = Bids-Asks;

if MarketPosition==0 then
if c>o then if var10>1000 then if ma(c,5)>ma(c,20) then
buy();
if MarketPosition==0 then
if c<o then if var10<-1000 then if ma(c,5)<ma(c,20) then
sell();

SetStopEndofday();

결과는 어떠할까요?

이런 저런 생각을 거듭하던 끝에 한가지 생각이 떠올랐습니다. 해당봉의 시가-종가 가 1틱이라면 이것은 상승봉이나 하락봉으로 보지 않으면 어떨까 하는 생각입니다. 마땅히 논리적으로 왜 그래야 할까 생각해 보면 '그 정도 차이라면 아직 수요와 공급 중 어느쪽도 우위를 점하고 있지 못한 것은 아닐까?' 이정도가 이유일거 같긴 합니다.
우선코드를 수정하고 적용을 해봅니다.

VAR10 = Bids-Asks;

if MarketPosition==0 then
if c>o+0.05 then if var10>1000 then
buy();
if MarketPosition==0 then
if c<o-0.05 then if var10<-1000 then
sell();

SetStopEndofday();

결과는 어떨까요?

승률은 완성하고 싶어하던 52%를 넘었으며 총손익도 조금 늘었습니다.
이것은 매우 의미있는 발견입니다. 코드 내용을 해석해보신다면 이 코드가 얼마나 명쾌한 코드인지를, 실행 과정에서 오류가 발생할수 없음을, 원하는 결과를 얻기 위해 인위적으로 가공되거나 보태지지 않은 진입규칙임을 판단할 수 있을 겁니다.

여기서 더이상의 승률을 높일 수 있는 추가 조건을 찾는 노력은 하지 않을 것입니다. 찾을 수 있을지 알 수도 없지만 찾는다고 해도 큰 의미를 두기 어려울 가능성이 높기 때문입니다. 이후 해야 할 일은 청산 규칙을 정해가면서 3%정도의 우위를 확보하는것입니다.

진입규칙은 그리 어려운 것이 아닙니다. 반면에 청산규칙은 매우 어렵습니다.

다음편 부터는 청산규칙을 찾아가는 과정을 적도록 하겠습니다.

#SystemTrading
#kopasi

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.076
BTC 64289.99
ETH 1665.81
USDT 1.00
SBD 0.41