커뮤니티
문의드립니다.
2011-12-15 01:03:54
324
글번호 45786
아래수식에서요.
시뮬레이션 5분봉 기준으로요.
날짜1 : 2011.12.14 ~ 2011.12.14
날짜2 : 2011.01.14 ~ 2011.12.14
이렇게 두번 시뮬레이션 해보면,
2011.12.14 일자 매도, 매도청산 결과가 다른데,
왜 그런지 알고싶습니다.
수식 : -------------------------
input : len(3.2), method(1),malen1(5),malen2(20),수익1(0.3), 손실1(0),전일고저(1);
var : buyVal(0), sellVal(0);
Var20=ma(close,malen1);
var21=ma(close,malen2);
if method == 1 then {
var10 = (dayhigh(1)+dayLow(1)+dayClose(1))/3; //피봇
var11 = var10*2-dayLow(1); //1차저항
var12 = var10+dayHigh(1)-dayLow(1); //2차저항
var9 = var10*2-dayHIgh(1); //1차지지
var8 = var10 - dayhigh(1)+dayLow(1); //2차지지
}
if var9 > dayOpen
then {
if stime <= 140000 Then
if MarketPosition == 0
and date <> EntryDate(1)
and dayindex > 0
and crossdown (c , dayclose(1))
then {
sell("매도31" );
}
### 최대수익 대비 하락 (10% 수익후 5% 손실시)
if marketposition() == -1 and C < entryprice(0) * (1 - 수익1/100) then { //문장4
var2 = -1;
sellVal = C; //문장5
messageLog("sellval1: % f c : %f ",sellVal, c);
}
if var2 == -1 then {
if C > sellVal * (1 + 손실1/100) then //문장6
exitshort("TrailingStop(매수00)");
}
}
답변 1
예스스탁 예스스탁 답변
2011-12-15 11:41:45
안녕하세요
예스스탁입니다.
작성된 식에서 var2부분 때문에 발생하는 문제입니다.
12월 14일 하루만 차트에서보면
이전일에 매도진입을 한적이 없으므로
12월 14일 11시 10분에 발생한 매도진입이후에
아래 조건을 만족하면
if marketposition() == -1 and C < entryprice(0) * (1 - 수익1/100) then
var2값은 -1이 되고
이후 var2가 -1인 상태에서
if C > sellVal * (1 + 손실1/100) then
조건 만족하면 매도청산이 됩니다.
하지만
2011.01.14 ~ 2011.12.14
인 차트에서는
매도진입 이후에 특정조건 만족해야 -1로 변경되는 것이아니고
차트상 제일 첫번째 매도진입이 발생하고
var2에 -1일 할당된 이후에는 계속 var2는 -1이므로
이후 청산은 매도진입후
C < entryprice(0) * (1 - 수익1/100)
조건이 만족하지 않아도 var2가 계속 -1이므로
청산이 발동하게 됩니다.
그러므로 수식상에 var2가 청산이 되면 초기화되는 내용이 필요합니다.
청산식을 아래와 같이 작성해서
var2가 초기화되는 내용을 추가해 주시면 됩니다.
### 최대수익 대비 하락 (10% 수익후 5% 손실시)
if marketposition() == -1 and C < entryprice(0) * (1 - 수익1/100) then { //문장4
var2 = -1;
sellVal = C; //문장5
}
if var2 == -1 then {
if C > sellVal * (1 + 손실1/100) then //문장6
exitshort("TrailingStop(매수00)");
}
}
#매도포지션이 아니면 var2는 0으로 초기화
if MarketPosition != -1 Then
var2 = 0;
즐거운 하루되세요
> 별이777 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 아래수식에서요.
시뮬레이션 5분봉 기준으로요.
날짜1 : 2011.12.14 ~ 2011.12.14
날짜2 : 2011.01.14 ~ 2011.12.14
이렇게 두번 시뮬레이션 해보면,
2011.12.14 일자 매도, 매도청산 결과가 다른데,
왜 그런지 알고싶습니다.
수식 : -------------------------
input : len(3.2), method(1),malen1(5),malen2(20),수익1(0.3), 손실1(0),전일고저(1);
var : buyVal(0), sellVal(0);
Var20=ma(close,malen1);
var21=ma(close,malen2);
if method == 1 then {
var10 = (dayhigh(1)+dayLow(1)+dayClose(1))/3; //피봇
var11 = var10*2-dayLow(1); //1차저항
var12 = var10+dayHigh(1)-dayLow(1); //2차저항
var9 = var10*2-dayHIgh(1); //1차지지
var8 = var10 - dayhigh(1)+dayLow(1); //2차지지
}
if var9 > dayOpen
then {
if stime <= 140000 Then
if MarketPosition == 0
and date <> EntryDate(1)
and dayindex > 0
and crossdown (c , dayclose(1))
then {
sell("매도31" );
}
### 최대수익 대비 하락 (10% 수익후 5% 손실시)
if marketposition() == -1 and C < entryprice(0) * (1 - 수익1/100) then { //문장4
var2 = -1;
sellVal = C; //문장5
messageLog("sellval1: % f c : %f ",sellVal, c);
}
if var2 == -1 then {
if C > sellVal * (1 + 손실1/100) then //문장6
exitshort("TrailingStop(매수00)");
}
}