커뮤니티
시스템식 수정 문의드립니다
2016-06-27 17:42:41
190
글번호 99533
수정중
답변 2
예스스탁 예스스탁 답변
2016-06-27 16:52:57
안녕하세요
예스스탁입니다.
1.
수식에서 데이터는 완성된 봉의 값만 사용이 가능합니다.
미완성봉의 값을 기준으로 신호를 내게 작성할수 없습니다.
그러므로 당일 매수후 당일 저가를 기준으로 당일에 신호가 발생하게는
식을 작성할수가 없습니다.
2
02-3453-1060으로 전화주시기 바랍니다.
즐거운 하루되세요
> kosto1 님이 쓴 글입니다.
> 제목 : 시스템식 수정 문의드립니다
> (시스템식 붙여넣기를 안했네요. 수정했습니다 ^^;)
안녕하세요.
수정해주신 시스템식을 가지고 잘 검증해보고 있습니다
항상 감사합니다.
2가지 문의사항이 있어서 게시물을 올립니다.
1. 최저가 대비 폭만큼 상승을 했는데 매도가 안나오는 경우가 종종 있습니다.
그림의 종목은 대주산업입니다.
당일 매수신호 후 당일 매도신호가 나오는 경우에 발생하는 것 같습니다.
당일 매수가 되었어도 당일 저점 대비 폭 만큼 상승하면
당일에 매도가 되게끔 처리하려면
무엇을 수정해야 할지 모르겠습니다
2. 폭만큼 반등이 나온 종목을 추가 매매하는 경우.
조건문하고 수식을 넣고 해보는데 원하는 방식이 안나와서 문의드립니다.
ㄱ. 1차 매매때 저점대비 폭이 나온 지점의 저점 저장 = FL
( 최저점 A 이후 폭이 나와서 B에 매도 했으니 FL = A)
폭은 SS
ㄴ. FL - 폭*1 만큼 하락하면 1차 매수
ㄷ. FL - 폭*2 만큼 하락하면 2차 매수
ㄹ. FL - 폭*3 만큼 하락하면 3차 매수
ㅁ. 청산은 매수후 저점 + 폭 만큼 상승하면 일괄청산
ㅂ. FL이 V4 이하라면 LV1에서 1차매수 (추매, 청산은 기존의 조건과 동일)
ㅅ. FL이 V4이하에서는 매수후 매도 한번 하면 매매 종료
ㅇ. 신고가 돌파하면 모든 조건 리셋후 처음부터 매매다시 시작
모자란 부분 알려주시면 바로 보충하겠습니다!
감사합니다!!!!
아래는 시스템식 입니다.
-----------------------------------------------------------------------------
input : P(120),MP(30),Period(10),per(10),시작날짜(20160101),매수1차(1000000),매수2차(1500000),매수3차(2000000);
var : kk(0),V0.5(0),V1(0),V2(0),V3(0),V4(0), LV1(0),LV2(0),LV3(0);
var : ss(0),s1(0),dayhh(0),cnt(0),ll(0);
var : entry(false),Price1(0),Price2(0),Price3(0);
var : MMH(0),Eup(0),Edn(0),nn(0),P1cond(false),ii(0);
Array : MM[50](0);
if date != date[1] Then{
MM[0] = 0;
for cnt = 1 to 49{
MM[cnt] = MM[cnt-1][1];
}
}
MM[0] = MM[0]+M;
dayhh = dayhigh(0);
for cnt = 0 to P-1{
if dayhigh(cnt) > dayhh Then
dayhh = dayhigh(cnt);
}
#MP일간 거대래금 최고
MMH = MM[1];
for cnt = 1 to MP{
if MM[cnt] > MMH Then
MMH = MM[cnt];
}
Eup = EnvelopeUp(Period,per);
Edn = EnvelopeUp(Period,per);
##### 신고가 조건 ############
if sdate >= 시작날짜 and MM[MP] > 0 then{
if dayhh > dayhh[1] Then{
Condition1 = true;
entry = true;
LL = L;
nn = money;
P1cond = true;
ii = index;
}
# 지표 설정식 ##
if condition1 ==true then {
#신고가 이후 최저가
if L < LL Then
LL = L;
#지표#
var1 = highest(h,p);
var2 = lowest(L,p);
if var1[1] < var1 Then
kk = (var1+var2)/2;
V0.5 = var1-((var1-kk)/5)*1;
V1 = var1-((var1-kk)/5)*2;
V2 = var1-((var1-kk)/5)*3;
V3 = var1-((var1-kk)/5)*4;
V4 = var1-((var1-kk)/5)*5;
LV1 = var1-((var1-kk)/5)*7;
LV2 = var1-((var1-kk)/5)*8;
LV3 = var1-((var1-kk)/5)*9;
#매도폭
ss = v2-v3 ;
Price1 = v2;
Price2 = v3;
Price3 = v4;
if index> ii and L <= price1 Then
P1cond = false;
}
}
if MarketPosition == 1 Then
entry = false;
#가격이 하락해 1차매수가격 이하이면 매수
if MarketPosition == 0 and condition1 == true and entry == true and P1cond == true Then
buy("b1",atlimit,Price1,Floor(매수1차/C));
#가격이 하락해 2차매수가격 이하이면 매수
if MarketPosition == 1 and MaxEntries == 1 and Price2 > 0 Then
buy("b2",atlimit,Price2,Floor(매수2차/C));
#가격이 하락해 3차매수가격 이하이면 매수
if MarketPosition == 1 and MaxEntries == 2 and Price3 > 0 Then
buy("b3",atlimit,Price3,Floor(매수3차/C));
if MarketPosition == 1 Then{
#진입이후 최저가에서 폭만큼 상승하면 청산
ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+ss);
if MaxEntries == 2 Then
exitlong("본절2",atlimit,lowest(L,BarsSinceEntry)+ss);
if MaxEntries == 3 Then
exitlong("본절3",atlimit,lowest(L,BarsSinceEntry)+ss);
}
예스스탁 예스스탁 답변
2016-06-28 15:42:39
안녕하세요
예스스탁입니다.
input : P(120),MP(30),Period(10),per(10),시작날짜(20160101),매수1차(1000000),매수2차(1500000),매수3차(2000000);
var : kk(0),V0.5(0),V1(0),V2(0),V3(0),V4(0), LV1(0),LV2(0),LV3(0);
var : ss(0),s1(0),dayhh(0),cnt(0),ll(0);
var : entry(false),Price1(0),Price2(0),Price3(0);
var : MMH(0),Eup(0),Edn(0),nn(0),P1cond(false),ii(0);
Array : MM[50](0);
if date != date[1] Then{
MM[0] = 0;
for cnt = 1 to 49{
MM[cnt] = MM[cnt-1][1];
}
}
MM[0] = MM[0]+M;
dayhh = dayhigh(0);
for cnt = 0 to P-1{
if dayhigh(cnt) > dayhh Then
dayhh = dayhigh(cnt);
}
#MP일간 거대래금 최고
MMH = MM[1];
for cnt = 1 to MP{
if MM[cnt] > MMH Then
MMH = MM[cnt];
}
Eup = EnvelopeUp(Period,per);
Edn = EnvelopeUp(Period,per);
##### 신고가 조건 ############
if sdate >= 시작날짜 and MM[MP] > 0 then{
if dayhh > dayhh[1] Then{
Condition1 = true;
entry = true;
LL = L;
nn = money;
P1cond = true;
ii = index;
}
# 지표 설정식 ##
if condition1 ==true then {
#신고가 이후 최저가
if L < LL Then
LL = L;
#지표#
var1 = highest(h,p);
var2 = lowest(L,p);
if var1[1] < var1 Then
kk = (var1+var2)/2;
V0.5 = var1-((var1-kk)/5)*1;
V1 = var1-((var1-kk)/5)*2;
V2 = var1-((var1-kk)/5)*3;
V3 = var1-((var1-kk)/5)*4;
V4 = var1-((var1-kk)/5)*5;
LV1 = var1-((var1-kk)/5)*7;
LV2 = var1-((var1-kk)/5)*8;
LV3 = var1-((var1-kk)/5)*9;
#매도폭
ss = v2-v3 ;
Price1 = v2;
Price2 = v3;
Price3 = v4;
if index> ii and L <= price1 Then
P1cond = false;
}
}
if MarketPosition == 1 Then
entry = false;
#가격이 하락해 1차매수가격 이하이면 매수
if TotalTrades == 0 and MarketPosition == 0 and condition1 == true and entry == true and P1cond == true Then
buy("b1",atlimit,Price1,Floor(매수1차/C));
if MarketPosition == 1 and IsEntryName("b1") == true then{
#가격이 하락해 2차매수가격 이하이면 매수
if MarketPosition == 1 and MaxEntries == 1 and Price2 > 0 Then
buy("b2",atlimit,Price2,Floor(매수2차/C));
#가격이 하락해 3차매수가격 이하이면 매수
if MarketPosition == 1 and MaxEntries == 2 and Price3 > 0 Then
buy("b3",atlimit,Price3,Floor(매수3차/C));
}
if TotalTrades >= 1 then{
if MarketPosition == 0 and BarsSinceExit(1) >= 1 Then
buy("bb1",atlimit,lowest(L,BarsSinceEntry(1))[BarsSinceExit(1)]-ss*1,Floor(매수1차/C));
#가격이 하락해 2차매수가격 이하이면 매수
if MarketPosition == 1 and IsEntryName("bb1") == true and MaxEntries == 1 and Price2 > 0 Then
buy("bb2",atlimit,lowest(L,BarsSinceEntry(1))[BarsSinceExit(1)]-ss*2,Floor(매수2차/C));
#가격이 하락해 3차매수가격 이하이면 매수
if MarketPosition == 1 and IsEntryName("bb1") == true and MaxEntries == 2 and Price3 > 0 Then
buy("bb3",atlimit,lowest(L,BarsSinceEntry(1))[BarsSinceExit(1)]-ss*3,Floor(매수3차/C));
}
if MarketPosition == 1 Then{
#진입이후 최저가에서 폭만큼 상승하면 청산
ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+ss);
if MaxEntries == 2 Then
exitlong("본절2",atlimit,lowest(L,BarsSinceEntry)+ss);
if MaxEntries == 3 Then
exitlong("본절3",atlimit,lowest(L,BarsSinceEntry)+ss);
}
즐거운 하루되세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 시스템식 수정 문의드립니다
>
안녕하세요
예스스탁입니다.
1.
수식에서 데이터는 완성된 봉의 값만 사용이 가능합니다.
미완성봉의 값을 기준으로 신호를 내게 작성할수 없습니다.
그러므로 당일 매수후 당일 저가를 기준으로 당일에 신호가 발생하게는
식을 작성할수가 없습니다.
2
02-3453-1060으로 전화주시기 바랍니다.
즐거운 하루되세요
> kosto1 님이 쓴 글입니다.
> 제목 : 시스템식 수정 문의드립니다
> (시스템식 붙여넣기를 안했네요. 수정했습니다 ^^;)
안녕하세요.
수정해주신 시스템식을 가지고 잘 검증해보고 있습니다
항상 감사합니다.
2가지 문의사항이 있어서 게시물을 올립니다.
1. 최저가 대비 폭만큼 상승을 했는데 매도가 안나오는 경우가 종종 있습니다.
그림의 종목은 대주산업입니다.
당일 매수신호 후 당일 매도신호가 나오는 경우에 발생하는 것 같습니다.
당일 매수가 되었어도 당일 저점 대비 폭 만큼 상승하면
당일에 매도가 되게끔 처리하려면
무엇을 수정해야 할지 모르겠습니다
2. 폭만큼 반등이 나온 종목을 추가 매매하는 경우.
조건문하고 수식을 넣고 해보는데 원하는 방식이 안나와서 문의드립니다.
ㄱ. 1차 매매때 저점대비 폭이 나온 지점의 저점 저장 = FL
( 최저점 A 이후 폭이 나와서 B에 매도 했으니 FL = A)
폭은 SS
ㄴ. FL - 폭*1 만큼 하락하면 1차 매수
ㄷ. FL - 폭*2 만큼 하락하면 2차 매수
ㄹ. FL - 폭*3 만큼 하락하면 3차 매수
ㅁ. 청산은 매수후 저점 + 폭 만큼 상승하면 일괄청산
ㅂ. FL이 V4 이하라면 LV1에서 1차매수 (추매, 청산은 기존의 조건과 동일)
ㅅ. FL이 V4이하에서는 매수후 매도 한번 하면 매매 종료
ㅇ. 신고가 돌파하면 모든 조건 리셋후 처음부터 매매다시 시작
모자란 부분 알려주시면 바로 보충하겠습니다!
감사합니다!!!!
아래는 시스템식 입니다.
-----------------------------------------------------------------------------
input : P(120),MP(30),Period(10),per(10),시작날짜(20160101),매수1차(1000000),매수2차(1500000),매수3차(2000000);
var : kk(0),V0.5(0),V1(0),V2(0),V3(0),V4(0), LV1(0),LV2(0),LV3(0);
var : ss(0),s1(0),dayhh(0),cnt(0),ll(0);
var : entry(false),Price1(0),Price2(0),Price3(0);
var : MMH(0),Eup(0),Edn(0),nn(0),P1cond(false),ii(0);
Array : MM[50](0);
if date != date[1] Then{
MM[0] = 0;
for cnt = 1 to 49{
MM[cnt] = MM[cnt-1][1];
}
}
MM[0] = MM[0]+M;
dayhh = dayhigh(0);
for cnt = 0 to P-1{
if dayhigh(cnt) > dayhh Then
dayhh = dayhigh(cnt);
}
#MP일간 거대래금 최고
MMH = MM[1];
for cnt = 1 to MP{
if MM[cnt] > MMH Then
MMH = MM[cnt];
}
Eup = EnvelopeUp(Period,per);
Edn = EnvelopeUp(Period,per);
##### 신고가 조건 ############
if sdate >= 시작날짜 and MM[MP] > 0 then{
if dayhh > dayhh[1] Then{
Condition1 = true;
entry = true;
LL = L;
nn = money;
P1cond = true;
ii = index;
}
# 지표 설정식 ##
if condition1 ==true then {
#신고가 이후 최저가
if L < LL Then
LL = L;
#지표#
var1 = highest(h,p);
var2 = lowest(L,p);
if var1[1] < var1 Then
kk = (var1+var2)/2;
V0.5 = var1-((var1-kk)/5)*1;
V1 = var1-((var1-kk)/5)*2;
V2 = var1-((var1-kk)/5)*3;
V3 = var1-((var1-kk)/5)*4;
V4 = var1-((var1-kk)/5)*5;
LV1 = var1-((var1-kk)/5)*7;
LV2 = var1-((var1-kk)/5)*8;
LV3 = var1-((var1-kk)/5)*9;
#매도폭
ss = v2-v3 ;
Price1 = v2;
Price2 = v3;
Price3 = v4;
if index> ii and L <= price1 Then
P1cond = false;
}
}
if MarketPosition == 1 Then
entry = false;
#가격이 하락해 1차매수가격 이하이면 매수
if MarketPosition == 0 and condition1 == true and entry == true and P1cond == true Then
buy("b1",atlimit,Price1,Floor(매수1차/C));
#가격이 하락해 2차매수가격 이하이면 매수
if MarketPosition == 1 and MaxEntries == 1 and Price2 > 0 Then
buy("b2",atlimit,Price2,Floor(매수2차/C));
#가격이 하락해 3차매수가격 이하이면 매수
if MarketPosition == 1 and MaxEntries == 2 and Price3 > 0 Then
buy("b3",atlimit,Price3,Floor(매수3차/C));
if MarketPosition == 1 Then{
#진입이후 최저가에서 폭만큼 상승하면 청산
ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+ss);
if MaxEntries == 2 Then
exitlong("본절2",atlimit,lowest(L,BarsSinceEntry)+ss);
if MaxEntries == 3 Then
exitlong("본절3",atlimit,lowest(L,BarsSinceEntry)+ss);
}
다음글
이전글