안녕하세요?
수정 : 아래수식에서 캔들봉이 마감될때 진입이 될수있게 부탁드립니다.
질문1 : length가 어떤길이인지 알수있을까요?
질문2 : 두번째질문은, 현재 캔들30분봉이상으로 셋팅하여 거래를하면
실제거래와 성능보고서와 차이가 많이나서요.
주로 성능보고서 수익이 실제로는 손실인경우가 꽤있어요.
캔들주기가 길어서 그런것인지, 수식에 어떤문제가 있는건지 꼭 찾아야하는데 ㅠㅠ
혹시 전문가 분들이시니, 어떤원인일 것이다 라고 몇가지만이라도 말씀해주시면 참고하고 싶습니다.
감사합니다.
inputs: Length(10), Pval(0.05),당일청산(153000);
input : 익절틱수(10), 손절틱수(10), 진입횟수(3);
var : entry(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1 ;
if entry < 진입횟수 then Sell("CBI", AtStop, Lowest(Low, Length) - Pval);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
SetStopEndofday(당일청산);
답변 1
예스스탁
예스스탁 답변
2023-12-05 13:58:28
안녕하세요
예스스탁입니다.
1
Sell("CBI", AtStop, Lowest(Low, Length) - Pval);
매도진입이 N개봉 최저가-0.05 이하에서 진입하는데 length는 n개봉을 지정하는 외부변수입니다.
2
수식상에는 문제는 없습니다.
리포트상 신호가격과 실제 체결가격 간에는 차이가 있을 수 있으므로
체결가격에 따른 내용인지는 별도로 살펴보셔야 합니다.
위 내용이 아니고 실제 거래와 이후에 시스템을 재적용해서 비교해 보시는 내용이면 차이가 있을 수 있습니다.
해당식은 봉 중간에 진입하고 같은봉에서 익절이나 손절이 발생할 수 있습니다.
실시간에서는 봉의 움직임을 그대로 추종해 가므로 진입 후 익절이나 손절 중 먼저 만족한 조건에 청산이 되지만
차트 과거봉에 봉안에 모든 체결시세가 있는 것은 아니므로 그 정확한 내부 움직임은 알 수가 없습니다.
그러므로 과거봉에 시뮬레이션을 하는 경우 봉안의 움직임에 대한 가설을 만들고
해당 가설대로 움직인것으로 보고 신호를 발생하게 됩니다.
즉 실전에서는 진입후 손절이 되었지만 시스템에서는 가설에 의해 익절에 먼저 도달한것으로 판단해 신호가 발생할 수 있습니다.
손익이 반대인 경우도 발생하게 됩니다.
해당 부분은 예스랭귀지 도움말의 예스랭귀지활용 부분에 과거 데이터움직임 가설을 참고하시기 바랍니다.
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 수식수정 및 질문 드려요
> 안녕하세요?
수정 : 아래수식에서 캔들봉이 마감될때 진입이 될수있게 부탁드립니다.
질문1 : length가 어떤길이인지 알수있을까요?
질문2 : 두번째질문은, 현재 캔들30분봉이상으로 셋팅하여 거래를하면
실제거래와 성능보고서와 차이가 많이나서요.
주로 성능보고서 수익이 실제로는 손실인경우가 꽤있어요.
캔들주기가 길어서 그런것인지, 수식에 어떤문제가 있는건지 꼭 찾아야하는데 ㅠㅠ
혹시 전문가 분들이시니, 어떤원인일 것이다 라고 몇가지만이라도 말씀해주시면 참고하고 싶습니다.
감사합니다.
inputs: Length(10), Pval(0.05),당일청산(153000);
input : 익절틱수(10), 손절틱수(10), 진입횟수(3);
var : entry(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1 ;
if entry < 진입횟수 then Sell("CBI", AtStop, Lowest(Low, Length) - Pval);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
SetStopEndofday(당일청산);