커뮤니티
수정요청
2015-03-31 09:54:12
184
글번호 84603
적용해보니 진입이 수도없이 많이 나오네요
스위칭 포함 1 일 2회진입으로 부탁합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : Re : 3 일간 최고가,최저가 돌파
>
안녕하세요
예스스탁입니다.
1번 2번 추가한 식입니다.
주석 참고하시기 바랍니다.
input : N(3);
var : HH(0),LL(0),cnt(0),Bcount(0),Scount(0);
#직전 N일간 최고/최저가
HH = dayhigh(1);
LL = daylow(1);
for cnt = 1 to N{
if dayhigh(cnt) > HH Then
HH = DayHigh(cnt);
if DayLow(cnt) < LL Then
LL = DayLow(cnt);
}
#당일 매수매도 진입횟수
Bcount = 0;
Scount = 0;
for cnt = 0 to 20{
if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then
Bcount = Bcount+1;
if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then
Scount = Scount+1;
}
#시가가 직전 최고가~최저가 사이
if HH >= dayopen and dayopen >= LL Then{
if Bcount < 1 and crossup(C,HH) Then
buy();
if Scount < 1 and CrossDown(C,LL) Then
sell();
}
#시가가 직전 최고가와 최저가 밖
if dayopen > HH or LL > dayopen Then{
if Bcount < 1 and crossup(C,dayopen+1) Then
buy();
if Scount < 1 and CrossDown(C,dayopen-1) Then
sell();
}
#매수 후
if MarketPosition == 1 Then{
#진입가 대비 1포인트 이상 상승 후 최고가에서 0.5 하락하면 청산
if highest(H,BarsSinceEntry) >= EntryPrice+1 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-0.5);
#진입가 대비 1포인트 이상 상승하지 못하고 진입가로 하락하면 매도로 스위칭
if highest(H,BarsSinceEntry) < EntryPrice+1 Then
sell("bs",AtStop,EntryPrice);
}
if MarketPosition == -1 Then{
#진입가 대비 1포인트 이상 하락 후 최저가에서 0.5 상승하면 청산
if lowest(L,BarsSinceEntry) <= EntryPrice-1 Then
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+0.5);
#진입가 대비 1포인트 이상 하락하지 못하고 진입가로 상승하면 매수로 스위칭
if lowest(L,BarsSinceEntry) > EntryPrice-1 Then
buy("sb",AtStop,EntryPrice);
}
즐거운 하루되세요
답변 1
예스스탁 예스스탁 답변
2015-03-31 10:48:40
안녕하세요
예스스탁입니다.
스위칭 포함 매수/매도진입을 각 2회까지만 되게 수정했습니다.
input : N(3);
var : HH(0),LL(0),cnt(0),Bcount(0),Scount(0);
#직전 N일간 최고/최저가
HH = dayhigh(1);
LL = daylow(1);
for cnt = 1 to N{
if dayhigh(cnt) > HH Then
HH = DayHigh(cnt);
if DayLow(cnt) < LL Then
LL = DayLow(cnt);
}
#당일 매수매도 진입횟수
Bcount = 0;
Scount = 0;
for cnt = 0 to 20{
if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then
Bcount = Bcount+1;
if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then
Scount = Scount+1;
}
#시가가 직전 최고가~최저가 사이
if HH >= dayopen and dayopen >= LL Then{
if Bcount < 1 and crossup(C,HH) Then
buy();
if Scount < 1 and CrossDown(C,LL) Then
sell();
}
#시가가 직전 최고가와 최저가 밖
if dayopen > HH or LL > dayopen Then{
if Bcount < 1 and crossup(C,dayopen+1) Then
buy();
if Scount < 1 and CrossDown(C,dayopen-1) Then
sell();
}
#매수 후
if MarketPosition == 1 Then{
#진입가 대비 1포인트 이상 상승 후 최고가에서 0.5 하락하면 청산
if highest(H,BarsSinceEntry) >= EntryPrice+1 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-0.5);
#진입가 대비 1포인트 이상 상승하지 못하고 진입가로 하락하면 매도로 스위칭
if highest(H,BarsSinceEntry) < EntryPrice+1 and Scount < 2 Then
sell("bs",AtStop,EntryPrice);
}
if MarketPosition == -1 Then{
#진입가 대비 1포인트 이상 하락 후 최저가에서 0.5 상승하면 청산
if lowest(L,BarsSinceEntry) <= EntryPrice-1 Then
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+0.5);
#진입가 대비 1포인트 이상 하락하지 못하고 진입가로 상승하면 매수로 스위칭
if lowest(L,BarsSinceEntry) > EntryPrice-1 and Bcount < 2 Then
buy("sb",AtStop,EntryPrice);
}
즐거운 하루되세요
> HI_SE****** 님이 쓴 글입니다.
> 제목 : 수정요청
>
적용해보니 진입이 수도없이 많이 나오네요
스위칭 포함 1 일 2회진입으로 부탁합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : Re : 3 일간 최고가,최저가 돌파
>
안녕하세요
예스스탁입니다.
1번 2번 추가한 식입니다.
주석 참고하시기 바랍니다.
input : N(3);
var : HH(0),LL(0),cnt(0),Bcount(0),Scount(0);
#직전 N일간 최고/최저가
HH = dayhigh(1);
LL = daylow(1);
for cnt = 1 to N{
if dayhigh(cnt) > HH Then
HH = DayHigh(cnt);
if DayLow(cnt) < LL Then
LL = DayLow(cnt);
}
#당일 매수매도 진입횟수
Bcount = 0;
Scount = 0;
for cnt = 0 to 20{
if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then
Bcount = Bcount+1;
if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then
Scount = Scount+1;
}
#시가가 직전 최고가~최저가 사이
if HH >= dayopen and dayopen >= LL Then{
if Bcount < 1 and crossup(C,HH) Then
buy();
if Scount < 1 and CrossDown(C,LL) Then
sell();
}
#시가가 직전 최고가와 최저가 밖
if dayopen > HH or LL > dayopen Then{
if Bcount < 1 and crossup(C,dayopen+1) Then
buy();
if Scount < 1 and CrossDown(C,dayopen-1) Then
sell();
}
#매수 후
if MarketPosition == 1 Then{
#진입가 대비 1포인트 이상 상승 후 최고가에서 0.5 하락하면 청산
if highest(H,BarsSinceEntry) >= EntryPrice+1 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-0.5);
#진입가 대비 1포인트 이상 상승하지 못하고 진입가로 하락하면 매도로 스위칭
if highest(H,BarsSinceEntry) < EntryPrice+1 Then
sell("bs",AtStop,EntryPrice);
}
if MarketPosition == -1 Then{
#진입가 대비 1포인트 이상 하락 후 최저가에서 0.5 상승하면 청산
if lowest(L,BarsSinceEntry) <= EntryPrice-1 Then
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+0.5);
#진입가 대비 1포인트 이상 하락하지 못하고 진입가로 상승하면 매수로 스위칭
if lowest(L,BarsSinceEntry) > EntryPrice-1 Then
buy("sb",AtStop,EntryPrice);
}
즐거운 하루되세요
이전글