커뮤니티

문의드립니다.

프로필 이미지
잡다백수
2018-01-03 07:49:59
163
글번호 115376
답변완료
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 기타 손익비는 떨어 뜨리지만 승률은 떨어 뜨리지 않으면서 피라미딩을 하려고 하는데요. 그러러면 -(진입포지션 - 스탑지점)의 수익금(혹은 수익률)이 -2차 포지션의 손실금(2차 진입지점-스탑지점) + 설정 슬리피지(1틱)+수수료(0.004) +최소수익으로 설정해놓은 금액(2틱) 보다는 커야 할 듯 합니다. -3차로 들어가려면 1차 2차까지 들어간 진입 포지션의 수익금이 -3차 진입포지션의 손실금(3차 진입지점-스탑지점)+설정 슬리피지(1틱)+수수료(0.004)+최소수익보다는 커야할 것이고 나머지 4차 5차도 같은 방식이어야 할 듯 합니다. 이걸 어떤 방식으로 구현할 수 있을까요? 청산지점은 아래 청산 수식을 쓰려고 합니다. input: TsValue(1); var: Hvalue(0),Lvalue(0); If MarketPosition() == 1 Then { Hvalue = Highest(H,BarsSinceEntry+1); ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale); } If MarketPosition() == -1 Then { Lvalue = Lowest(L,BarsSinceEntry+1); ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale); } 2. 기타 외부변수 진입금액, 제한 금액 -진입 전봉보다 0.5틱 더 크면 진입금액만큼 매수 진입(ATSTOP) -전봉이 수익이면 진입수량*2 추가 -'' 손실이면 진입금액으로 돌아감 -진입금액은 제한금액이상으로 늘리지는 않음. 3. 아래와 같이 buysetup으로 고가 저장을 한 뒤 돌파로 수식을 짤 때 buysetup이 된 다음봉 이상 에서만(buysetup봉에서는 진입하지 않도록) 진입이 되도록 하려면 어떻게 고쳐야 하나요. 어느 부분을 고친건지 간단한 주석 부탁드립니다. Inputs: rt(0.6),틱수(10); var : ChUp(0), ChDn(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); ChUp = dayopen + ((dayhigh(1) - daylow(1)) * rt); ChDn = dayopen - ((dayhigh(1) - daylow(1)) * rt); If crossup (Close, ChUp) then{ buysetup = true; buybase = H; Buyindex = index; } if C < CHDn Then buySetup = false; If crossdown (Close, ChDn) then{ Sellsetup = true; Sellbase = L; Sellindex = index; } if C > CHup Then SellSetup = false; if buysetup == true and MarketPosition == 0 then{ buy("매수",AtStop,buybase+PriceScale*틱수); } if Sellsetup == true and MarketPosition == 0 then{ sell("매도",AtStop,Sellbase-PriceScale*틱수); } } 4. 기타 답변해주신 것 듣고 시뮬레이션은 아래 식으로만 하는 중인데요. 이제 시뮬레이션 결과가 좋아서 실전에서 같은 봉에서도 발생할 수 있도록 하게 하려면 아래 수식을 어떻게 바꾸어야 하는지요. input: TsValue(1); var: Hvalue(0),Lvalue(0); If MarketPosition() == 1 Then { Hvalue = Highest(H,BarsSinceEntry+1); ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale); } If MarketPosition() == -1 Then { Lvalue = Lowest(L,BarsSinceEntry+1); ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale); } 5. 전에 짜주신 일정봉 지나서 손익라인 닿으면 즉시 청산 식인데요. 이걸 일정봉 지난 뒤 손익분기라인 아래(매수면 아래 매도면 위) 있으면 즉시 청산으로 수정 부탁드립니다. 혹시 이미 포함돼 있는 건가요? input : 최소기다리는봉(10),슬리피지틱수(1),수수료율(0.01); if MarketPosition == 1 and BarsSinceEntry >= 최소기다리는봉 Then{ var1 = EntryPrice+PriceScale*슬리피지틱수+EntryPrice*(수수료율/100); if NextBarOpen <= var1 Then exitlong("bx1",AtLimit,var1); Else exitlong("bx2",AtStop,var1); } if MarketPosition == -1 and BarsSinceEntry >= 최소기다리는봉 Then{ var1 = EntryPrice-PriceScale*슬리피지틱수-EntryPrice*(수수료율/100); if NextBarOpen >= var1 Then ExitShort("sx1",AtLimit,var1); Else ExitShort("sx2",AtStop,var1); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-01-03 14:00:41

안녕하세요 예스스탁입니다. 1.2 올려주신 부분은 내용판단이 되지 않습니다. 도움을 드리지 못해 죄송합니다. 3 기본적으로 셋업봉에서는 진입을 하지 않습니다.' 수식의 진입에 atstop이 기본타입니다. atstop은 셋팅후 다음봉에서 신호가 발생하므로 셋업봉에서 진입이 발생할수 없습니다. false가 되는 조건이 반대 조건발생시인데 각 선을 이탈하면 false가 되게 수정했습니다. Inputs: rt(0.6),틱수(10); var : ChUp(0), ChDn(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); ChUp = dayopen + ((dayhigh(1) - daylow(1)) * rt); ChDn = dayopen - ((dayhigh(1) - daylow(1)) * rt); If crossup (Close, ChUp) then{ buysetup = true; buybase = H; Buyindex = index; } #종가가 상단하라이면 buySetup이 false가 되게 수정 if C < chup Then buySetup = false; If crossdown (Close, ChDn) then{ Sellsetup = true; Sellbase = L; Sellindex = index; } #종가가 하단보다 크면 SellSetup이 false가 되게 수정 if C > CHdn Then SellSetup = false; if buysetup == true and MarketPosition == 0 then{ buy("매수",AtStop,buybase+PriceScale*틱수); } if Sellsetup == true and MarketPosition == 0 then{ sell("매도",AtStop,Sellbase-PriceScale*틱수); } 4 1틱이상 수익후 최고수익점 대비 1틱하락하면 청산입니다. 수익을 최소 1틱이상 지정해야 합니다 SetStopTrailing(PriceScale*1,PriceScale*1,PointStop); 5 input : 최소기다리는봉(10),슬리피지틱수(1),수수료율(0.01); if MarketPosition == 1 and BarsSinceEntry >= 최소기다리는봉 Then{ var1 = EntryPrice+PriceScale*슬리피지틱수+EntryPrice*(수수료율/100); exitlong("bx2",AtStop,var1); } if MarketPosition == -1 and BarsSinceEntry >= 최소기다리는봉 Then{ var1 = EntryPrice-PriceScale*슬리피지틱수-EntryPrice*(수수료율/100); ExitShort("sx2",AtStop,var1); } 즐거운 하루되세요 > 잡다백수 님이 쓴 글입니다. > 제목 : 문의드립니다. > 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 기타 손익비는 떨어 뜨리지만 승률은 떨어 뜨리지 않으면서 피라미딩을 하려고 하는데요. 그러러면 -(진입포지션 - 스탑지점)의 수익금(혹은 수익률)이 -2차 포지션의 손실금(2차 진입지점-스탑지점) + 설정 슬리피지(1틱)+수수료(0.004) +최소수익으로 설정해놓은 금액(2틱) 보다는 커야 할 듯 합니다. -3차로 들어가려면 1차 2차까지 들어간 진입 포지션의 수익금이 -3차 진입포지션의 손실금(3차 진입지점-스탑지점)+설정 슬리피지(1틱)+수수료(0.004)+최소수익보다는 커야할 것이고 나머지 4차 5차도 같은 방식이어야 할 듯 합니다. 이걸 어떤 방식으로 구현할 수 있을까요? 청산지점은 아래 청산 수식을 쓰려고 합니다. input: TsValue(1); var: Hvalue(0),Lvalue(0); If MarketPosition() == 1 Then { Hvalue = Highest(H,BarsSinceEntry+1); ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale); } If MarketPosition() == -1 Then { Lvalue = Lowest(L,BarsSinceEntry+1); ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale); } 2. 기타 외부변수 진입금액, 제한 금액 -진입 전봉보다 0.5틱 더 크면 진입금액만큼 매수 진입(ATSTOP) -전봉이 수익이면 진입수량*2 추가 -'' 손실이면 진입금액으로 돌아감 -진입금액은 제한금액이상으로 늘리지는 않음. 3. 아래와 같이 buysetup으로 고가 저장을 한 뒤 돌파로 수식을 짤 때 buysetup이 된 다음봉 이상 에서만(buysetup봉에서는 진입하지 않도록) 진입이 되도록 하려면 어떻게 고쳐야 하나요. 어느 부분을 고친건지 간단한 주석 부탁드립니다. Inputs: rt(0.6),틱수(10); var : ChUp(0), ChDn(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); ChUp = dayopen + ((dayhigh(1) - daylow(1)) * rt); ChDn = dayopen - ((dayhigh(1) - daylow(1)) * rt); If crossup (Close, ChUp) then{ buysetup = true; buybase = H; Buyindex = index; } if C < CHDn Then buySetup = false; If crossdown (Close, ChDn) then{ Sellsetup = true; Sellbase = L; Sellindex = index; } if C > CHup Then SellSetup = false; if buysetup == true and MarketPosition == 0 then{ buy("매수",AtStop,buybase+PriceScale*틱수); } if Sellsetup == true and MarketPosition == 0 then{ sell("매도",AtStop,Sellbase-PriceScale*틱수); } } 4. 기타 답변해주신 것 듣고 시뮬레이션은 아래 식으로만 하는 중인데요. 이제 시뮬레이션 결과가 좋아서 실전에서 같은 봉에서도 발생할 수 있도록 하게 하려면 아래 수식을 어떻게 바꾸어야 하는지요. input: TsValue(1); var: Hvalue(0),Lvalue(0); If MarketPosition() == 1 Then { Hvalue = Highest(H,BarsSinceEntry+1); ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale); } If MarketPosition() == -1 Then { Lvalue = Lowest(L,BarsSinceEntry+1); ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale); } 5. 전에 짜주신 일정봉 지나서 손익라인 닿으면 즉시 청산 식인데요. 이걸 일정봉 지난 뒤 손익분기라인 아래(매수면 아래 매도면 위) 있으면 즉시 청산으로 수정 부탁드립니다. 혹시 이미 포함돼 있는 건가요? input : 최소기다리는봉(10),슬리피지틱수(1),수수료율(0.01); if MarketPosition == 1 and BarsSinceEntry >= 최소기다리는봉 Then{ var1 = EntryPrice+PriceScale*슬리피지틱수+EntryPrice*(수수료율/100); if NextBarOpen <= var1 Then exitlong("bx1",AtLimit,var1); Else exitlong("bx2",AtStop,var1); } if MarketPosition == -1 and BarsSinceEntry >= 최소기다리는봉 Then{ var1 = EntryPrice-PriceScale*슬리피지틱수-EntryPrice*(수수료율/100); if NextBarOpen >= var1 Then ExitShort("sx1",AtLimit,var1); Else ExitShort("sx2",AtStop,var1); }