커뮤니티
시스템식 수정 문의드립니다.
2016-06-15 22:37:06
111
글번호 99126
안녕하세요.
전에 알려주신 것을 바탕으로 응용을 해보고 있는데 잘 안되는 부분이 있어
글을 작성하게 되었습니다.
항상 감사합니다!!!
두가지 문의드립니다
1. 한번의 신고가 구간에서는 한번 매도가 이루어 지면, 다음 신고가 까지 다시 진입하지 않음.
2. 매도가의 설정
매도가 = 신고가구간에서의 최저가 + 폭 입니다.
매수가와 폭설정은 제대로 되었습니다.
허나, 신고가 구간에서 최저가를 구하는 것을 모르겠습니다.
그부분도 추가해 주시면 정말 감사하겠습니다!!!!
-----------------------------------------------------------------------------------
input : P(120),시작날짜(20160101),매수1차(1000000),매수2차(1500000),매수3차(2000000);
var : kk(0),V0.5(0),V1(0),V2(0),V3(0);
var : V4(0),ss(0),s1(0),dayhh(0),cnt(0),ll(0);
var : entry(0),Price1(0),Price2(0),Price3(0);
dayhh = dayhigh(0);
for cnt = 0 to P-1{
if dayhigh(cnt) > dayhh Then
dayhh = dayhigh(cnt);
}
##### 신고가 조건 ############
if sdate >= 시작날짜 then{
if dayhh > dayhh[1] Then{
Condition1 = true;
# entry==true;
}
#entry 함수를 넣으면 매수를 안함
# if O*1.03 < C then{
#entry == true;
# }
# 지표 설정식 ##
if condition1 ==true then {
#지표#
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;
#매도폭
ss = v2-v3 ;
Price1 = v2;
Price2 = v3;
Price3 = v4;
}
}
if MarketPosition == 1 Then
entry == false;
#가격이 하락해 1차매수가격 이하이면 매수
if MarketPosition == 0 and condition1 == 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,(Price1+Price2)/2);
if MaxEntries == 3 Then
exitlong("본절3",atlimit,Price2);
}
- 1. 99649_문의.JPG (0.15 MB)
답변 1
예스스탁 예스스탁 답변
2016-06-16 14:11:18
안녕하세요
예스스탁입니다.
수식에서 entry변수가 신고가가 발생하면 true가 되고
매수진입이 되면 false가 되어 추가진입을 막는 변수입니다.
1차진입에 entry == true라는 조건을 주었습니다.
수식에 LL로 신고가 이후의 최저가를 저장하게 추가해 놓았습니다.
input : P(120),시작날짜(20160101),매수1차(1000000),매수2차(1500000),매수3차(2000000);
var : kk(0),V0.5(0),V1(0),V2(0),V3(0);
var : V4(0),ss(0),s1(0),dayhh(0),cnt(0),ll(0);
var : entry(false),Price1(0),Price2(0),Price3(0);
dayhh = dayhigh(0);
for cnt = 0 to P-1{
if dayhigh(cnt) > dayhh Then
dayhh = dayhigh(cnt);
}
##### 신고가 조건 ############
if sdate >= 시작날짜 then{
if dayhh > dayhh[1] Then{
Condition1 = true;
entry=true;
LL = L;
}
#entry 함수를 넣으면 매수를 안함
# if O*1.03 < C then{
#entry == true;
# }
# 지표 설정식 ##
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;
#매도폭
ss = v2-v3 ;
Price1 = v2;
Price2 = v3;
Price3 = v4;
}
}
if MarketPosition == 1 Then
entry = false;
#가격이 하락해 1차매수가격 이하이면 매수
if MarketPosition == 0 and condition1 == true and entry == 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,(Price1+Price2)/2);
if MaxEntries == 3 Then
exitlong("본절3",atlimit,Price2);
}
즐거운 하루되세요
> 단순점진일관 님이 쓴 글입니다.
> 제목 : 시스템식 수정 문의드립니다.
> 안녕하세요.
전에 알려주신 것을 바탕으로 응용을 해보고 있는데 잘 안되는 부분이 있어
글을 작성하게 되었습니다.
항상 감사합니다!!!
두가지 문의드립니다
1. 한번의 신고가 구간에서는 한번 매도가 이루어 지면, 다음 신고가 까지 다시 진입하지 않음.
2. 매도가의 설정
매도가 = 신고가구간에서의 최저가 + 폭 입니다.
매수가와 폭설정은 제대로 되었습니다.
허나, 신고가 구간에서 최저가를 구하는 것을 모르겠습니다.
그부분도 추가해 주시면 정말 감사하겠습니다!!!!
-----------------------------------------------------------------------------------
input : P(120),시작날짜(20160101),매수1차(1000000),매수2차(1500000),매수3차(2000000);
var : kk(0),V0.5(0),V1(0),V2(0),V3(0);
var : V4(0),ss(0),s1(0),dayhh(0),cnt(0),ll(0);
var : entry(0),Price1(0),Price2(0),Price3(0);
dayhh = dayhigh(0);
for cnt = 0 to P-1{
if dayhigh(cnt) > dayhh Then
dayhh = dayhigh(cnt);
}
##### 신고가 조건 ############
if sdate >= 시작날짜 then{
if dayhh > dayhh[1] Then{
Condition1 = true;
# entry==true;
}
#entry 함수를 넣으면 매수를 안함
# if O*1.03 < C then{
#entry == true;
# }
# 지표 설정식 ##
if condition1 ==true then {
#지표#
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;
#매도폭
ss = v2-v3 ;
Price1 = v2;
Price2 = v3;
Price3 = v4;
}
}
if MarketPosition == 1 Then
entry == false;
#가격이 하락해 1차매수가격 이하이면 매수
if MarketPosition == 0 and condition1 == 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,(Price1+Price2)/2);
if MaxEntries == 3 Then
exitlong("본절3",atlimit,Price2);
}
다음글
이전글