답변완료
거래내역 엑셀 평가
삼복 무더위에 수고하십니다.
건의 사항과 문의 사항이 있어 글 올립니다.
첨부된 파일들은 코스피,코스탁 전 종목을 대상으로 하여
시스템 전략식(추세추종형) 별로 돌려보기를 하여 거래된 종목들을 기록한 결과입니다.
거래내역을 엑셀로 추출하여 <아래>의 항목을 구하였습니다.
<시스템성능보고서> 의 거래내역처럼 누적수익이 없어서 엑셀함수로 총수익률을 구하였습니다.
<아래>
일평균수익률, 총수익률, 승률, 평균거래일, 거래일수, 거래횟수
일평균수익률 = 총수익률 / 거래일수
평균거래일 = 거래일수 / 거래횟수
건의 사항 :
<관심종목 돌려보기>를 하여서 <종목포트폴리오 시스템성능보고서><종목포트폴리오 최적화>가 나오면 엑설런트인데요!!!
언제 쯤 나올지 기대해 볼 수 있을까요???!!!
조속히 만들어 주시길 부탁 드립니다.
문의 사항 1번.
추출한 거래내역에서 일평균수익률, 승률, 평균거래일 말고는 전략식을 평가할 항목을 구하기가 어렵네요.
시스템 관련서적이나 블로그, 카페에도 거래내역에서 나온 일평균 수익률로 전략식을 평가하는 방법은 찾을 수가 없었습니다.
1)일평균수익률이 몇% 나와야 추세추종형에서 유용한 전략인지 궁금합니다.
2)수익률 검토.txt 문서에서 그나마 나은 전략이 어떤 것인지 자문을 구합니다.
3)첨부된 거래내역 엑셀 파일로 Sharpe Ratio, RINA Index 등 평가항목을 구할 수 있는 식이 있으면 부탁드립니다.
4) <돌려보기>하여 거래내역을 추출한 후 수익률 검토.txt 내의 <이평선수렴발산-시스템식> 처럼
최적화 변수를 구하는 것이 타당한 것인지 자문 구합니다.
이평선수렴발산 3%,
이평선수렴발산 4%,
이평선수렴발산 5%,
이평선수렴발산 6%,
이평선수렴발산 7%,
이평선수렴발산 9%,
2021-08-04
1570
글번호 151313
시스템
답변완료
지표 부탁드립니다.
안녕하세요?
아래 내용은 참조데이터2의 수급막대그래프입니다.
이를 참조데이터 2~6까지(5개의 참조데이터) 합산해서 수급막대그래프를 표현하고자 합니다.
부탁만 드려 미안합니다.
무더운 여름에 건강하시고 좋은 하루되시길 바랍니다.
감사합니다.
var : C2(0,Data2),H2(0,Data2),L2(0,Data2),cnt(0,Data2);
var : Sidx(0,Data2),Sidx1(0,Data2),Eidx(0,Data2),Eidx1(0,Data2),Pre1(0,Data2);
C2 = Data2(c);
if Data2(Bdate != Bdate[1]) Then
{
H2 = C2;
L2 = C2;
Sidx = data2(Index);
Sidx1 = Sidx[1];
Eidx1 = Eidx[1];
}
Eidx = data2(Index);
if data2(Bdate != Bdate[1] or (Bdate == bdate[1] and C2 > h2)) Then
h2 = C2;
if data2(Bdate != Bdate[1] or (Bdate == Bdate[1] and C2 < l2)) Then
l2 = C2;
if Sidx1 > 0 Then
{
pre1 = 0;
For cnt = data2(Index)-Eidx1 to data2(Index)-Sidx1
{
if data2(sDate[cnt] < sDate and sTime[cnt] <= sTime) Then
{
pre1 = C2[cnt];
cnt = data2(Index-Sidx1+1);
}
}
}
Plot1(C2,"참조",IFf(C2 >0,RED,black));
Plot2(H2,"최고");
Plot3(L2,"최저");
Plot4(pre1,"전일");
PlotBaseLine1(0);
2021-08-04
1085
글번호 151297
지표
답변완료
시스템 작성의뢰
Input : Period1(1), Period2(3), Period3(30), Period4(60), Period5(120),period6(240),Period7(480), Period8(960), Period9(1920), Period10(3840),period11(7680);
var : Sma1(0),Sma2(0),Sma3(0),Sma4(0),Sma5(0),sma6(0),Sma7(0),Sma8(0),Sma9(0),Sma10(0),sma11(0),OBVV(0),PositiveVolumeIndex(0),dpo(0);
Sma1 = ma(C,Period1);
Sma2 = ma(C,Period2);
Sma3 = ma(C,Period3);
Sma4 = ma(C,Period4);
Sma5 = ma(C,Period5);
sma6 = ma(c,period6);
Sma7 = ma(C,Period7);
Sma8 = ma(C,Period8);
Sma9 = ma(C,Period9);
Sma10 = ma(C,Period10);
sma11 = ma(c,period11);
input : startdate(20210104),starttime(143000),매매횟수(0);
var : Period(5),period12(3), StoK(0),StoD(0), TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
var : entry(0);
if StoK > StoK[1] and StoK[1] < StoK[2] and StoK < 50 then { //스토캐스틱 상승반전
var1 = StoK[1];
var2 = var1[1];
var3 = L[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 and Condition1 == true then
if sDate >= Startdate and sTime >= Starttime Then
{
Condition1 = true;
entry = 0;
}
if Condition1 == true and
((MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1])) Then
entry = entry+1;
StoK = StochasticsK(Period,Period2);
StoD = StochasticsD(Period,Period2,Period12);
if StoK > StoK[1] and StoK[1] < StoK[2] and StoK < 50 then { //스토캐스틱 상승반전
var1 = StoK[1];
var2 = var1[1];
var3 = L[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 and Condition1 == true then
{
if (MarketPosition == 0 or (MarketPosition == 1 and C < LatestEntryPrice(0))) and
(매매횟수 == 0 or (매매횟수 > 0 and entry < 매매횟수)) and sma1 < sma5 -pricescale*5 Then
Buy();
}
}
if StoK < StoK[1] and StoK[1] > StoK[2] and StoK > 50 then {//스토캐스틱 하락반전
var11 = StoK[1];
var12 = var11[1];
var13 = H[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 and C > AvgEntryPrice and Condition1 == true then //지표값은 낮아지고 저(종)가는 높아지고
ExitLong("+");
}
수고 하십니다 !
검증이 안되고요 , 매수 수식만 되는데 매도수식 도
부탁 드립니다 !
수고 하세요 !!!
2021-08-04
1138
글번호 151294
시스템
답변완료
검색
> 안녕하세요
항상감사합니다.
A]고+저가삼각가중 100
B]고가가중100
C]저가가중100
D]마디고점
E]마디저점
-------------------------------------------------
1] A가 B 의 가격과 동일하거나/ B의 가격보다 낮으면 매도신호[-0.05]
2] A가 C 가격과 동일하거나/ C 가격보다 높으면 매수신호 [+0.05]
3] D의 가격과 동일하거나/ D 가격보다 낮으면 매도신호
4] A가 E의 가격과 동일하거나/ E가격보다 높으면 매수신호
*마디고점과 마디저점의 자체 수식에서 신호표시가 있읍니다
3]4]에서 조건이 만족할때 만 신호표시가 나올 수 있을까요?
*수식이 이해가 가셨다면 수식표시 아이콘가 캔들과의 간견차이가 10정도차이나면합니다
---------------------------------------------------------------------------------
D]마디고점
var : T(0),LL(0),Li(0);
#고가 상승구간이면 1
if H > H[1] Then
T = 1;
#고가 하락구간이면 -1
if H < H[1] Then
T = -1;
#고가 하락반전발생
if T == -1 and T[1] != -1 Then
{
#최저가 초기값 저장
LL = L;
#최저가봉 봉번호
Li = index;
#발생을 알기위한 변수
Condition1 = true;
}
#하락반전 이후
if Condition1 == true then
{
#최저가 갱신
if L < LL Then
{
LL = L;
Li = index;
}
#최저가봉 이후에 전봉고가보다 크고 저가는 최저가 이상이면 매도
if index > Li and H > H[1] and L >= LL Then
{
Condition1 = false;
plot1(L,"검색",CYAN);
}
}
--------------------------------------------------------------------------------------
E]마디저점
var : S(0),HH(0),Hi(0);
#저가 상승구간이면 1
if L > L[1] Then
S = 1;
#저가 하락구간이면 -1
if L < L[1] Then
S = -1;
#저가 상승반전발생
if S == 1 and S[1] != 1 Then
{
#최고가 초기값 저장
HH = H;
#최고가봉 봉번호
Hi = index;
#발생을 알기위한 변수
Condition2 = true;
}
#상승반전 이후
if Condition2 == true then
{
#최고가 갱신
if H > HH Then
{
HH = H;
Hi = index;
}
#최고가봉 이후에 전봉저가보다 작고 고가는 최고가 이하이면 매수
if index > Hi and L < L[1] and H <= HH Then
{
Condition2 = false;
plot2(H,"검색",white);
}
}
--------------------------------------------------------------------------------
2021-08-03
1083
글번호 151293
검색
답변완료
시스템식 문의 드립니다.
예전에 분봉에서 일봉상 이평선을 터치했을때 매수 하는
시스템식을 도식화해서 요청드린 사람입니다
벌써 똑같은 식으로 3번이나 질문하네요..
죄송합니다...ㅜ.ㅜ
이정도 실력도 없는 제 자신이 한심스럽네요..ㅜ.ㅜ
기존식에서 추가되는 조건이 생겨서 이리저리
수정을 해봤는데..잘안되어서 또 요청드리게 되었습니다.
새로 추가되는 조건은
1차 매수를 했던, 2차 매수까지 진행되었던건 간에
매수한지 2일차 13:00 가 되면.. 익절 퍼센트를 2% (변수 익절3) 로 수정되는식으로
조건을 추가하고 싶습니다.
예) 8/3일에 1차매수.. 8/3일 2차매수 ==> 익절타점5%가 안오고 횡보하는경우
8/4일 13:00 이후에 익절타점이 2%으로 변경
8/3일에 1차매수.. 8/4일 2차매수 ==> 익절타점5%가 안오고 횡보하는경우
8/4일 13:00 이후에 익절타점이 2%으로 변경
8/3일에 1차매수.. ==> 익절타점5%가 안오고 횡보하는경우
8/4일 13:00 이후에 익절타점이 2%으로 변경
xdate 와 xtime으로 만들어볼려고 이리지리 해봤는데.. 잘안됩니다..ㅜ.ㅜ
매번 감사하고 죄송하네요
요청드렸던 식 다시 올려드립니다.
------------------------------------------------------------------------
input : N(10),금액1(10000000),금액2(10000000);
input : 추가진입(-3),익절1(5),익절2(5),손절(-3);
input : Xdate(3),Xtime(110000);
var : cnt(0),sum(0),mav(0),DD(0);
sum = 0;
For cnt = 0 to N-1
{
sum = sum + DayClose(cnt);
}
mav = sum/N;
if Bdate != Bdate[1] Then
{
DD = DD+1;
Condition1 = False;
}
if MarketPosition == 0 and TotalTrades > TotalTrades[1] Then
Condition1 = true;
if Condition1 == False and MarketPosition == 0 and L > mav Then
Buy("b1",AtLimit,mav,Floor(금액1/min(NextBarOpen,mav)));
if MarketPosition == 1 Then
{
if DD == DD[BarsSinceEntry]+Xdate and sTime == xtime Then
{
Condition1 = true;
ExitLong("bx");
}
if MaxEntries == 1 and Condition1 == False Then
{
Buy("b2",AtLimit,LatestEntryPrice(0)*(1+추가진입/100),Floor(금액2/min(NextBarOpen,LatestEntryPrice(0)*(1+추가진입/100))));
ExitLong("Bp1",AtLimit,avgEntryPrice*(1+익절1/100));
}
if MaxEntries == 2 Then
{
ExitLong("Bp2",AtLimit,avgEntryPrice*(1+익절2/100));
ExitLong("Bl",AtStop,avgEntryPrice*(1+손절/100));
}
}
2021-08-03
913
글번호 151292
시스템