커뮤니티
수식 부탁드립니다.
2012-02-29 16:27:16
290
글번호 48404
먼저 지난 답변에 감사드립니다. 알려주신 답변을 통하여 수식을 짜보았는데
여전히 모르는 부분이 많아 다시 질문하게 되었습니다.
input : shortperiod(12),longPeriod(26),SigPeriod(9),ma1(60),ma2(20);
var : AA(0),BB(0),FF(0),GG(0);
AA = MACD(shortperiod,longperiod);
BB = ma(AA,sigperiod);
FF = wma(c,MA1);
GG = wma(c,MA2);
if AA>=BB and FF > FF[1] and close-close[1]>=0 and close >= open Then
buy();
if AA<=BB and FF < FF[1] and close-close[1]<=0 and close <= open Then
sell();
1. 위와 같이 만들었는데.. 청산에 관한 수식을 넣었으면 합니다.
매수후 close<GG 이면 매수청산
매도후 close>GG 이면 매도청산
2. 그리고 청산후에는 반대포지션 진입신호가 나와야 하는데..
자꾸 같은 방향의 신호가 발생하는데..청산후 추가상승,하락이 나오더라도
그부분은 포기하고 반대신호 발생만 되었으면 합니다.
(예를 들면 매수 후 매수청산 이면, 매도신호가 나올때까지는 포지션이 없는 상태로
대기해야 하는데, 자꾸 매수로 바로 따라 붙네요. )
청산후 반대방향의 신호가 나올때까지 기다리는 식도 추가 부탁드립니다.
3. 갭보정에 관한 식은 챠트설정때 갭보정만 하면 되는 것인지요? 아니면
따로 수식으로 만들어 주어야 하는지 답변 부탁드려요.
4. 손절과 시간 강제청산에 관한 것은 시스템 매매설정창에서 해주어도
무방한 것인가요?
번거롭게 해드려 죄송합니다.
답변 1
예스스탁 예스스탁 답변
2012-02-29 17:27:50
안녕하세요
예스스탁입니다.
1.
input : shortperiod(12),longPeriod(26),SigPeriod(9),ma1(60),ma2(20);
var : AA(0),BB(0),FF(0),GG(0);
AA = MACD(shortperiod,longperiod);
BB = ma(AA,sigperiod);
FF = wma(c,MA1);
GG = wma(c,MA2);
if (MarketPosition == 0 and ExitDate(1) != sdate) or
MarketPosition == -1 or
(MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == -1) Then{
if AA>=BB and FF > FF[1] and close-close[1]>=0 and close >= open Then
buy();
}
if MarketPosition == 1 and C < GG Then
exitlong();
if (MarketPosition == 0 and ExitDate(1) != sdate) or
MarketPosition == 1 or
(MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == 1) Then{
if AA<=BB and FF < FF[1] and close-close[1]<=0 and close <= open Then
sell();
}
if MarketPosition == -1 and C > GG Then
ExitShort();
2.
시스템은 일반적으로 갭보정을 하여 적용하지 않습니다.
갭보정은 당일 데이터는 그대로인 상태에서 과거 데이터를
모두 보정해서 변경하게 되므로 신호가 매일 변경될수 있습니다.
차트 갭보정은 하지 않으며 갭보정을 할경우
수식으로 아래와 같이 작성해서 차트상 첫날 부터 보정해서
현재로 오는 식을 이용합니다.
아래 내용도 차트의 봉갯수에 따라 혹은 시작일에 따라 신호가 변경될수 있습니다
input : shortperiod(12),longPeriod(26),SigPeriod(9),ma1(60),ma2(20);
var : AA(0),BB(0),FF(0),GG(0);
var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0);
if date!=date[1] then {
gap = Open-Close[1];
sumGap = sumGap+gap;
}
GC = C - sumGap;
AA = ema(GC,shortperiod)-ema(GC,longperiod);
BB = ma(AA,sigperiod);
FF = wma(GC,MA1);
GG = wma(GC,MA2);
if (MarketPosition == 0 and ExitDate(1) != sdate) or
MarketPosition == -1 or
(MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == -1) Then{
if AA>=BB and FF > FF[1] and close-close[1]>=0 and close >= open Then
buy();
}
if MarketPosition == 1 and GC < GG Then
exitlong();
if (MarketPosition == 0 and ExitDate(1) != sdate) or
MarketPosition == 1 or
(MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == 1) Then{
if AA<=BB and FF < FF[1] and close-close[1]<=0 and close <= open Then
sell();
}
if MarketPosition == -1 and GC > GG Then
ExitShort();
3.
손절과 당일청산등은 설정창에서 하셔도 됩니다.
즐거운 하루되세요
> 일일이포 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다.
> 먼저 지난 답변에 감사드립니다. 알려주신 답변을 통하여 수식을 짜보았는데
여전히 모르는 부분이 많아 다시 질문하게 되었습니다.
input : shortperiod(12),longPeriod(26),SigPeriod(9),ma1(60),ma2(20);
var : AA(0),BB(0),FF(0),GG(0);
AA = MACD(shortperiod,longperiod);
BB = ma(AA,sigperiod);
FF = wma(c,MA1);
GG = wma(c,MA2);
if AA>=BB and FF > FF[1] and close-close[1]>=0 and close >= open Then
buy();
if AA<=BB and FF < FF[1] and close-close[1]<=0 and close <= open Then
sell();
1. 위와 같이 만들었는데.. 청산에 관한 수식을 넣었으면 합니다.
매수후 close<GG 이면 매수청산
매도후 close>GG 이면 매도청산
2. 그리고 청산후에는 반대포지션 진입신호가 나와야 하는데..
자꾸 같은 방향의 신호가 발생하는데..청산후 추가상승,하락이 나오더라도
그부분은 포기하고 반대신호 발생만 되었으면 합니다.
(예를 들면 매수 후 매수청산 이면, 매도신호가 나올때까지는 포지션이 없는 상태로
대기해야 하는데, 자꾸 매수로 바로 따라 붙네요. )
청산후 반대방향의 신호가 나올때까지 기다리는 식도 추가 부탁드립니다.
3. 갭보정에 관한 식은 챠트설정때 갭보정만 하면 되는 것인지요? 아니면
따로 수식으로 만들어 주어야 하는지 답변 부탁드려요.
4. 손절과 시간 강제청산에 관한 것은 시스템 매매설정창에서 해주어도
무방한 것인가요?
번거롭게 해드려 죄송합니다.