커뮤니티

지표식 보완부탁합니다.

프로필 이미지
너무조아
2015-10-16 06:33:05
113
글번호 91337
답변완료
NO.44954와 관련입니다. # 관련 지표식 입니다. Input : 진입날짜(20151001),진입시간(90000); input : 진입수수료(0),청산수수료(0); input : 진입슬리피지(0),청산슬리피지(0); Input : P(10); input : A(10),MU(2),X(0); var : EMAs(0),upv(0),dnv(0),Ov(0); var : T(0),sumPL(0),totalPL(0),HH(0); EMAs = ema(C,P); Ov = ( DayOpen(0)); if sdate == 진입날짜 and (stime == 진입시간 or (stime > 진입시간 and stime[1] < 진입시간)) Then Condition1 = true; if Condition1 == true then{ if dayindex == 0 Then{ upv = Ov+atr(A)*MU; dnv = Ov-atr(A)*MU; } if dayindex > 0 Then { if CrossUp(EMAs,upv) Then { if T <= 0 Then{ var1 = c; if T == -1 Then{ sumPL = SumPL+(var2-c-진입수수료-청산수수료-진입슬리피지-청산슬리피지); } } T = 1; upv = upv[1]+atr(A)*MU; dnv = upv[1]; } if CrossDown(EMAs,dnv) Then { if T >= 0 Then{ var2 = c; if T == 1 Then{ sumPL = sumPL+(c-var1-진입수수료-청산수수료-진입슬리피지-청산슬리피지); } } T = -1; upv = dnv[1]; dnv = dnv[1]-atr(A)*MU; } } if T == 1 Then totalPL = sumPL+(c-var1-진입수수료-청산수수료-진입슬리피지-청산슬리피지); if T == -1 Then totalPL = sumPL+(var2-c-진입수수료-청산수수료-진입슬리피지-청산슬리피지); if totalPL > HH Then HH = totalPL; plot1(totalPL,"누적수익"); plot2(HH,"최고누적수익"); plot3(HH*0.6,"최고누적수익 60%"); } # 아래와 같이 시스템식을 부분적으로 수정하여 포지션이 청산 된 후 무포지션 상태의 구간이 있습니다. .......... < 중략 >......... if dayindex == 0 Then{ upv = Ov+atr(A)*MU; dnv = Ov-atr(A)*MU; # 이곳 다음으로 아래 수식을 시스템식에 삽입 하였습니다. If MarketPosition == 1 Then { If upv < EntryPrice(0)-X Then ExitLong("Lx",AtMarket); } If MarketPosition == -1 Then { If dnv > EntryPrice(0)+X Then ExitShort("Sx",AtMarket); } # 위와같이 포지션 청산 후 무포지션 상태로 수익의 변화가 없는 구간에 대하여 관련 지표식을 보완 하여 주시면 감사 하겠습니다. # 그리고 NO.44954 당초 식에서 위 관련 지표식과 같이 NextBarOpen 은 ----> C 로 plot1(sumPL,"누적수익"); 은 -----> plot1(totalPL,"누적수익"); 로 변경을 하니 정상적인 수익차트가 생성 되었습니다. # 다음으로 위 관련 지표식에서 T <= 0 T >= 0 T == 1 T == -1 T = -1 T = 1 로 표기 된 부분에 대하여 쉽게 이해 될 수 있도록 주석을 달아 주시면 대단히 감사 하겠습니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-10-16 14:12:48

안녕하세요 예스스탁입니다. 1. Input : 진입날짜(20151001),진입시간(90000); input : 진입수수료(0),청산수수료(0); input : 진입슬리피지(0),청산슬리피지(0); Input : P(10); input : A(10),MU(2),X(1); var : EMAs(0),upv(0),dnv(0),Ov(0); var : T(0),sumPL(0),totalPL(0),HH(0); EMAs = ema(C,P); Ov = ( DayOpen(0)); if sdate == 진입날짜 and (stime == 진입시간 or (stime > 진입시간 and stime[1] < 진입시간)) Then Condition1 = true; if Condition1 == true then{ if dayindex == 0 Then{ upv = Ov+atr(A)*MU; dnv = Ov-atr(A)*MU; } if dayindex > 0 Then { if CrossUp(EMAs,upv) Then { if T <= 0 Then{ var1 = c; if T == -1 Then{ sumPL = SumPL+(var2-c-진입수수료-청산수수료-진입슬리피지-청산슬리피지); } } T = 1; upv = upv[1]+atr(A)*MU; dnv = upv[1]; } if CrossDown(EMAs,dnv) Then { if T >= 0 Then{ var2 = c; if T == 1 Then{ sumPL = sumPL+(c-var1-진입수수료-청산수수료-진입슬리피지-청산슬리피지); } } T = -1; upv = dnv[1]; dnv = dnv[1]-atr(A)*MU; } } if T == 1 Then{ totalPL = sumPL+(c-var1-진입수수료-청산수수료-진입슬리피지-청산슬리피지); if upv < var1-X Then{ sumPL = SumPL+(var2-c-진입수수료-청산수수료-진입슬리피지-청산슬리피지); T = 0; } } if T == -1 Then{ totalPL = sumPL+(var2-c-진입수수료-청산수수료-진입슬리피지-청산슬리피지); if dnv > var2+X Then{ sumPL = SumPL+(var2-c-진입수수료-청산수수료-진입슬리피지-청산슬리피지); T = 0; } } if totalPL > HH Then HH = totalPL; plot1(totalPL,"누적수익"); plot2(HH,"최고누적수익"); plot3(HH*0.6,"최고누적수익 60%"); } 2 위 수식에서 T는 지표식에서 현재 진입방향을 구분하기 위한 용도입니다. 매수진입조건이 만족하면 1, 매도진입조건이 만족하면 -1, 청산후 포지션이 없으면 0입니다. 마치 시스템에서 현재포지션의 상태를 나타내는 MarketPosition과 같이 동작하게 변수입니다. T <= 0 현재 진입방향이 무포지션이거나 매도포지션 T >= 0 현재 진입방향이 무포지션이거나 매수포지션 T == 1 현재 매수진입된 상태 T == -1 현재 매도진입된 상태 T=1; T=-1, T=0 위 3개는 진입조건이 만족하거나 청산되면 각 값을 저장해 주는 것입니다. 즐거운 하루되세요 > 너무조아 님이 쓴 글입니다. > 제목 : 지표식 보완부탁합니다. > NO.44954와 관련입니다. # 관련 지표식 입니다. Input : 진입날짜(20151001),진입시간(90000); input : 진입수수료(0),청산수수료(0); input : 진입슬리피지(0),청산슬리피지(0); Input : P(10); input : A(10),MU(2),X(0); var : EMAs(0),upv(0),dnv(0),Ov(0); var : T(0),sumPL(0),totalPL(0),HH(0); EMAs = ema(C,P); Ov = ( DayOpen(0)); if sdate == 진입날짜 and (stime == 진입시간 or (stime > 진입시간 and stime[1] < 진입시간)) Then Condition1 = true; if Condition1 == true then{ if dayindex == 0 Then{ upv = Ov+atr(A)*MU; dnv = Ov-atr(A)*MU; } if dayindex > 0 Then { if CrossUp(EMAs,upv) Then { if T <= 0 Then{ var1 = c; if T == -1 Then{ sumPL = SumPL+(var2-c-진입수수료-청산수수료-진입슬리피지-청산슬리피지); } } T = 1; upv = upv[1]+atr(A)*MU; dnv = upv[1]; } if CrossDown(EMAs,dnv) Then { if T >= 0 Then{ var2 = c; if T == 1 Then{ sumPL = sumPL+(c-var1-진입수수료-청산수수료-진입슬리피지-청산슬리피지); } } T = -1; upv = dnv[1]; dnv = dnv[1]-atr(A)*MU; } } if T == 1 Then totalPL = sumPL+(c-var1-진입수수료-청산수수료-진입슬리피지-청산슬리피지); if T == -1 Then totalPL = sumPL+(var2-c-진입수수료-청산수수료-진입슬리피지-청산슬리피지); if totalPL > HH Then HH = totalPL; plot1(totalPL,"누적수익"); plot2(HH,"최고누적수익"); plot3(HH*0.6,"최고누적수익 60%"); } # 아래와 같이 시스템식을 부분적으로 수정하여 포지션이 청산 된 후 무포지션 상태의 구간이 있습니다. .......... < 중략 >......... if dayindex == 0 Then{ upv = Ov+atr(A)*MU; dnv = Ov-atr(A)*MU; # 이곳 다음으로 아래 수식을 시스템식에 삽입 하였습니다. If MarketPosition == 1 Then { If upv < EntryPrice(0)-X Then ExitLong("Lx",AtMarket); } If MarketPosition == -1 Then { If dnv > EntryPrice(0)+X Then ExitShort("Sx",AtMarket); } # 위와같이 포지션 청산 후 무포지션 상태로 수익의 변화가 없는 구간에 대하여 관련 지표식을 보완 하여 주시면 감사 하겠습니다. # 그리고 NO.44954 당초 식에서 위 관련 지표식과 같이 NextBarOpen 은 ----> C 로 plot1(sumPL,"누적수익"); 은 -----> plot1(totalPL,"누적수익"); 로 변경을 하니 정상적인 수익차트가 생성 되었습니다. # 다음으로 위 관련 지표식에서 T <= 0 T >= 0 T == 1 T == -1 T = -1 T = 1 로 표기 된 부분에 대하여 쉽게 이해 될 수 있도록 주석을 달아 주시면 대단히 감사 하겠습니다.