커뮤니티
시스템식 다시 문의드립니다.
2016-05-19 15:37:52
133
글번호 98246
안녕하세요
알려주신 내용 잘 검증해 보고 있습니다.
감사합니다!!!
1. 차트는 3월 초반 성광밴드의 15분 봉입니다.
적용은 분봉에 일봉을 적용할 수 있는 시스템식을 사용했습니다.
수정을 부탁할 것이 있습니다.
ㄱ.
20일 이하에서는 신규매수가 나가지 않아야 하는데 주문이 나가고 있습니다.
안나게 수정 부탁드립니다.
ㄴ. 3일에 보면 20일 데드후 골드가 나왔습니다.
그러면 폭을 다시 리셋하고 다음 부터 매매가 이루어지는 식을 부탁드립니다.
print로 저장된 3월 3일의 폭을 보면 갑자기 170에서 730으로 커져버렸습니다.
2. 제이콘텐트리 5월 17일 입니다.
피라미드 다른 진입신호 허용으로 설정한 상태입니다.
신고가가 낮아지면서 신고가가 변했으니
다른 신호로 판단해 두번째 매수가 나온것 같습니다.
신고가를 20일 신고가 갱신으로 고정했으면 합니다.
그리고, 신고가 갱신을 전의 신고가 보다 2%이상 갱신되어야
신고가로 인정하는 식을 추가할 수 있는지 궁금합니다.
새신고가 2% 초과 -> 다른 조건과 맞물려서 금지 신호 없으면 매매준비
새신고가 2% 미만 -> 새신고가가 2% 초과할때까지 매매금지
3. 시스템 식에 추가 문의드립니다.
신고가와 1차매수의 폭이 2.5%가 넘어야 매수가 되게 수정이 가능할지요??
계산은 (신고가 - 1차매수가격)/1차매수가격 * 100 입니다.
작다면 2.5%보다 커질때까지 다음 신고가를 기다리고
크다면 기존 매수금지 조건하고 비교해서 어긋나지 않으면 매수 진행이 되면 됩니다
또 이부분을 차트에 표시할 수 있게 지표나 강조로 가능한지도 부탁드립니다.
감사합니다!!!
아래는 적용한 식입니다.
-----------------------------------------------------------------------------
input : P(20),시작날짜(20160108),매수1차(1000000),매수2차(1500000),매수3차(2000000);
var : T(0),HH(0),Price1(0),Price2(0),Price3(0),diff(0),sum(0),mav(0),cnt(0);
sum = 0;
for cnt = 0 to P-1{
sum = sum+DayClose(cnt);
}
mav = sum/P;
if sdate >= 시작날짜 then{
#이평 데드되었다가 골드되면 최고폭저장변수는 0으로 초기화
if crossup(C,mav) Then{
T = 1;
HH = 0;
}
if CrossDown(C,mav) Then{
T = -1;
Condition1 = false;
}
#20이평 위에서만 신고가 갱신시 최대폭을 구함
if T == 1 and H == Highest(H,20) Then{
#최근 폭
diff = HH;
Condition1 = true;
#이평위에서 최대폭과 매수가격
if H-L > HH Then{
HH = H-L;
}
Price1 = H-HH*1;
Price2 = H-HH*2;
Price3 = H-HH*3;
}
if MarketPosition == 1 Then
Condition1 = false;
#가격이 하락해 1차매수가격 이하이면 매수
if MarketPosition == 0 and Price1 > 0 and L >= Price1 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{
#진입이후로 한번도 20선 아래로 내려가지 않은경우
#진입이후 최저가에서 폭만큼 상승하면 청산
if countif(C<mav,BarsSinceEntry) == 0 Then
ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+diff);
#진입이후로 20선 아래로 한번이상 내려간 경우
#진입이후 최저가에서 폭의 절반만큼 상승하면 청산
if countif(C<mav,BarsSinceEntry) == 0 Then
ExitLong("bx2",atlimit,lowest(L,BarsSinceEntry)+diff*0.5);
#일괄매도 = 현재 20일 신고가 이후 최저가 + 최대폭(75%)
ExitLong("일괄매도",atlimit,lowest(L,BarsSinceEntry)+diff*0.75);
}
}
print("data.csv",",신고가,%.f,폭,%.2f,1차매수가,%.f",H,HH,H-HH*1);
- 1. 성광.jpg (0.20 MB)
- 2. 성광폭.JPG (0.21 MB)
- 3. 제이콘.jpg (0.09 MB)
- 4. 제이콘_엑셀.JPG (0.30 MB)
답변 1
예스스탁 예스스탁 답변
2016-05-20 15:12:56
> 단순점진일관 님이 쓴 글입니다.
> 제목 : 시스템식 다시 문의드립니다.
> 안녕하세요
알려주신 내용 잘 검증해 보고 있습니다.
감사합니다!!!
1. 차트는 3월 초반 성광밴드의 15분 봉입니다.
적용은 분봉에 일봉을 적용할 수 있는 시스템식을 사용했습니다.
수정을 부탁할 것이 있습니다.
ㄱ.
20일 이하에서는 신규매수가 나가지 않아야 하는데 주문이 나가고 있습니다.
안나게 수정 부탁드립니다.
ㄴ. 3일에 보면 20일 데드후 골드가 나왔습니다.
그러면 폭을 다시 리셋하고 다음 부터 매매가 이루어지는 식을 부탁드립니다.
print로 저장된 3월 3일의 폭을 보면 갑자기 170에서 730으로 커져버렸습니다.
2. 제이콘텐트리 5월 17일 입니다.
피라미드 다른 진입신호 허용으로 설정한 상태입니다.
신고가가 낮아지면서 신고가가 변했으니
다른 신호로 판단해 두번째 매수가 나온것 같습니다.
신고가를 20일 신고가 갱신으로 고정했으면 합니다.
그리고, 신고가 갱신을 전의 신고가 보다 2%이상 갱신되어야
신고가로 인정하는 식을 추가할 수 있는지 궁금합니다.
새신고가 2% 초과 -> 다른 조건과 맞물려서 금지 신호 없으면 매매준비
새신고가 2% 미만 -> 새신고가가 2% 초과할때까지 매매금지
3. 시스템 식에 추가 문의드립니다.
신고가와 1차매수의 폭이 2.5%가 넘어야 매수가 되게 수정이 가능할지요??
계산은 (신고가 - 1차매수가격)/1차매수가격 * 100 입니다.
작다면 2.5%보다 커질때까지 다음 신고가를 기다리고
크다면 기존 매수금지 조건하고 비교해서 어긋나지 않으면 매수 진행이 되면 됩니다
또 이부분을 차트에 표시할 수 있게 지표나 강조로 가능한지도 부탁드립니다.
감사합니다!!!
아래는 적용한 식입니다.
-----------------------------------------------------------------------------
input : P(20),시작날짜(20160108),매수1차(1000000),매수2차(1500000),매수3차(2000000);
var : T(0),HH(0),Price1(0),Price2(0),Price3(0),diff(0),sum(0),mav(0),cnt(0);
sum = 0;
for cnt = 0 to P-1{
sum = sum+DayClose(cnt);
}
mav = sum/P;
if sdate >= 시작날짜 then{
#이평 데드되었다가 골드되면 최고폭저장변수는 0으로 초기화
if crossup(C,mav) Then{
T = 1;
HH = 0;
}
if CrossDown(C,mav) Then{
T = -1;
Condition1 = false;
}
#20이평 위에서만 신고가 갱신시 최대폭을 구함
if T == 1 and H == Highest(H,20) Then{
#최근 폭
diff = HH;
Condition1 = true;
#이평위에서 최대폭과 매수가격
if H-L > HH Then{
HH = H-L;
}
Price1 = H-HH*1;
Price2 = H-HH*2;
Price3 = H-HH*3;
}
if MarketPosition == 1 Then
Condition1 = false;
#가격이 하락해 1차매수가격 이하이면 매수
if MarketPosition == 0 and Price1 > 0 and L >= Price1 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{
#진입이후로 한번도 20선 아래로 내려가지 않은경우
#진입이후 최저가에서 폭만큼 상승하면 청산
if countif(C<mav,BarsSinceEntry) == 0 Then
ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+diff);
#진입이후로 20선 아래로 한번이상 내려간 경우
#진입이후 최저가에서 폭의 절반만큼 상승하면 청산
if countif(C<mav,BarsSinceEntry) == 0 Then
ExitLong("bx2",atlimit,lowest(L,BarsSinceEntry)+diff*0.5);
#일괄매도 = 현재 20일 신고가 이후 최저가 + 최대폭(75%)
ExitLong("일괄매도",atlimit,lowest(L,BarsSinceEntry)+diff*0.75);
}
}
print("data.csv",",신고가,%.f,폭,%.2f,1차매수가,%.f",H,HH,H-HH*1);
다음글
이전글