커뮤니티
시스템식 부탁드립니다
2011-02-10 03:59:31
776
글번호 35589
예를들어 진입조건이 다음과 같이 1~15종류가 있는데
# 진입조건1
if stime >= 090600 and
value > 0 and crossup(macdVal,macdSig) and
(H - L[2]) > 0.3 and
H < Highest(C,15) and
then buy();
if stime >= 090600 and
(Highest(C,50) > Lowest(C,50) +0.4) and
value < 0 and crossdown(macdVal,macdSig) and
(H[2] - L) > 0.3
L > Lowest(C,20)[2] and
C[1] > C and h[2] > Highest(l,20)[3]
then sell();
#진입조건2
if stime >= 090600 and
value > 0 and
crossup(macdVal,macdSig)) and
value > Highest(value,4)[1] and
then buy();
if stime >= 090600 and
(Highest(C,20) > Lowest(C,20) +0.5) and
(value < 0 and
crossdown(macdVal,macdSig) and
value < Lowest(value,4)[1]
then sell();
#진입조건3
if stime >= 090600 and
var1 > var2 and var2 > var3 and
value2[2] > 0 and value2[1] < 0 and value2 < 0 and
ma(C,5)[3] +0.3 < C and
L > Lowest(C,30)[2] and
H[1] > Highest(L,50)[2]
then sell();
if stime >= 090600 and
(Highest(C,50) > Lowest(C,50) +0.5) and
var1 > var2 and var2 > var3 and
(H - L[1]) > 0.3 and
value[1] < Lowest(value,3)[2] and
H < Highest(C,20) and
then buy();
#진입조건 4~15
...
이경우에
진입의 경우중
1. "crossup(macdval,mavdsig)"가 포함되어 "buy" 한 경우 (#1번,#2번의 경우)
진입후 1분봉 5개 이내에 "crossdown(macdval,mavdsig)"이
나오면 "exitlong"
2. "crossdown(macdval,mavdsig)"가 포함되어 "sell" 한 경우 (#1번,#2번의 경우)
진입후 1분봉 5개 이내에 "crossup(macdval,mavdsig)"이
나오면 "exitshort"
이놈의 macd 신호는 진입판단기준으로는 쓸만한데 진입하면 바로 방향을 틀어버리는 경우가 많아서 낭패를 보게됩니다. 이렇게라도 필터링 할수 있다면 상당히 좋아질듯 합니다.
다른 방법이 있다면 해결방법을 부탁드립니다 .
- 1. 35870_2.jpg (0.10 MB)
- 2. 35871_3.jpg (0.11 MB)
- 3. 4.jpg (0.12 MB)
답변 1
예스스탁 예스스탁 답변
2011-02-10 13:41:37
안녕하세요
예스스탁입니다.
진입명칭을 이용하셔야 합니다.
우선 모든 buy, sell에 이름을 부여하시고
그리고 그 이름을 이용해 청산식을 작성하셔야 합니다.
가령 crossup(macdval,mavdsig) 조건이 있는 진입이
buy("b1"), buy("b2"), buy("b3")이라면
아래와 같이 청산식을 작성하시면 됩니다.
if MarketPosition == 1 and (IsEntryName("b1") or IsEntryName("b2") or IsEntryName("b3") Then{
if BarsSinceEntry < 5 and crossdown(macdval,mavdsig) Then
exitlong();
}
매도청산도 마찬가지로
crossdown(macdval,mavdsig) 조건이 있는 진입이
sell("s1"), sell("s2"), sell("s3")이라면
아래와 같이 청산식을 작성하시면 됩니다.
if MarketPosition == -1 and (IsEntryName("s1") or IsEntryName("s2") or IsEntryName("s3") Then{
if BarsSinceEntry < 5 and crossup(macdval,mavdsig) Then
exitshort();
}
과 같이 작성하시면 됩니다.
참고하시기 바랍니다.
즐거운 하루되세요
> 줄다리기 님이 쓴 글입니다.
> 제목 : 시스템식 부탁드립니다
> 예를들어 진입조건이 다음과 같이 1~15종류가 있는데
# 진입조건1
if stime >= 090600 and
value > 0 and crossup(macdVal,macdSig) and
(H - L[2]) > 0.3 and
H < Highest(C,15) and
then buy();
if stime >= 090600 and
(Highest(C,50) > Lowest(C,50) +0.4) and
value < 0 and crossdown(macdVal,macdSig) and
(H[2] - L) > 0.3
L > Lowest(C,20)[2] and
C[1] > C and h[2] > Highest(l,20)[3]
then sell();
#진입조건2
if stime >= 090600 and
value > 0 and
crossup(macdVal,macdSig)) and
value > Highest(value,4)[1] and
then buy();
if stime >= 090600 and
(Highest(C,20) > Lowest(C,20) +0.5) and
(value < 0 and
crossdown(macdVal,macdSig) and
value < Lowest(value,4)[1]
then sell();
#진입조건3
if stime >= 090600 and
var1 > var2 and var2 > var3 and
value2[2] > 0 and value2[1] < 0 and value2 < 0 and
ma(C,5)[3] +0.3 < C and
L > Lowest(C,30)[2] and
H[1] > Highest(L,50)[2]
then sell();
if stime >= 090600 and
(Highest(C,50) > Lowest(C,50) +0.5) and
var1 > var2 and var2 > var3 and
(H - L[1]) > 0.3 and
value[1] < Lowest(value,3)[2] and
H < Highest(C,20) and
then buy();
#진입조건 4~15
...
이경우에
진입의 경우중
1. "crossup(macdval,mavdsig)"가 포함되어 "buy" 한 경우 (#1번,#2번의 경우)
진입후 1분봉 5개 이내에 "crossdown(macdval,mavdsig)"이
나오면 "exitlong"
2. "crossdown(macdval,mavdsig)"가 포함되어 "sell" 한 경우 (#1번,#2번의 경우)
진입후 1분봉 5개 이내에 "crossup(macdval,mavdsig)"이
나오면 "exitshort"
이놈의 macd 신호는 진입판단기준으로는 쓸만한데 진입하면 바로 방향을 틀어버리는 경우가 많아서 낭패를 보게됩니다. 이렇게라도 필터링 할수 있다면 상당히 좋아질듯 합니다.
다른 방법이 있다면 해결방법을 부탁드립니다 .
다음글