예스스탁
예스스탁 답변
2022-05-04 10:42:04
안녕하세요
예스스탁입니다.
피보나치는 고점과 저점이 기반이 됩니다.
올리신 내용을 구현하기 위해서는
피보나치 계산에 필요한 최고점과 최저점에 대한 내용이 필요합니다.
이 고점과 저점대한 내용은 사용자분이 지정을 하셔야 합니다.
랭귀지에서 자동으로 계산해 주는 부분은 없습니다.
아래 내용을 참고해서 원하시는 내용을 만들어 보시기 바랍니다.
고점저점은 전일기준 5일간 최고가와 최저가기준으로 작성한 식입니다.
추가진입하게 되므로 시스템트레이딩설정창에서 피라미딩을 다른진입신호만 허용으로 설정하고 적용하셔야 합니다.
input : N(5),금액(10000000);
var : cnt(0),hh(0),ll(0);
hh = 0;
ll = 0;
For cnt = 1 to N
{
if (hh == 0 or (hh > 0 and DayHigh(cnt) > hh)) Then
hh = DayHigh(cnt);
if (ll == 0 or (ll > 0 and DayLow(cnt) < ll)) Then
ll = DayLow(cnt);
}
var1 = hh-(hh-ll)*0;
var2 = hh-(hh-ll)*0.236;
var3 = hh-(hh-ll)*0.382;
var4 = hh-(hh-ll)*0.500;
var5 = hh-(hh-ll)*0.618;
var6 = hh-(hh-ll)*0.786;
var7 = hh-(hh-ll)*1.000;
if CrossDown(C,var2) Then
Buy("b1",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var3) Then
Buy("b2",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var4) Then
Buy("b3",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var5) Then
Buy("b4",OnClose,DEF,Floor((금액*0.2)/C));
if CrossDown(C,var6) Then
Buy("b5",OnClose,DEF,Floor((금액*0.2)/C));
if MarketPosition == 1 Then
{
if CrossUp(c,var1) Then
ExitLong("bx1",OnClose,DEF,"b1");
if CrossUp(c,Var2) Then
ExitLong("bx2",OnClose,DEF,"b2");
if CrossUp(c,Var3) Then
ExitLong("bx3",OnClose,DEF,"b3");
if CrossUp(c,Var4) Then
ExitLong("bx4",OnClose,DEF,"b4");
if CrossUp(c,var5) Then
ExitLong("bx5",OnClose,DEF,"b5");
}
즐거운 하루되세요
> 바나 님이 쓴 글입니다.
> 제목 : 피보나치 되돌림
> 피보나치 되돌림으로 수식을 지정하여 시스템트레이딩을 해보고 싶은데요.
상승시작일자 하락시작일자 등을 따로 제가 지정을 해줘야만 하는건가요?
아니면 몇거래일 혹은 몇봉 사이에 자동으로 피보나치 수식을 적용하도록
하여 트레이딩 시킬수 있나요?
---
피보나치 되돌림에 해당하는 0.236, 0.382, 0.5, 0.618, 0.786 지점에서
각자 비율을 다르게 해서 분할매수 하고 싶습니다.
매도는 만약 0.236에 매수하면 0이상 돌파시 100%매도
0.236, 0.382에 두번 매수했다면 0.236에 50%매도 0에 나머지 100%매도
0.236, 0.382, 0.5에 세번 매수했다면 0.236에 50%매도 0.5에 50%매도 0에 나머지 100%매도
이런식으로 분할매도 시키고 싶습니다.