커뮤니티
질문드립니다
2016-10-07 13:28:57
143
글번호 102658
수고하십니다.
최근 예스랭귀지 수식 공부를 시작했는데 답변주시는 수식들이 큰 도움이 되고있습니다.
기초가 잡히지 전까진 질문을 종종 드려야 될 거 같습니다;;
이번 질문은 국내선물 시스템 매매 수식인데요.
MACD 골든 크로스 시 매수
1) 진입 > 완성된 봉의 종가 기준 -1틱, -2틱,-3틱 1계약씩 매수(또는 2계약씩)
2) 손절 > 평균 진입가 대비 0.3 포인트 손실시 손절
3) 수익청산 > 평균 진입가 대비 0.5 포인트 수익시 1개 청산, 0.7 포인트 수익시 1개 청산,
마지막 1개는 5이평선이 10이평선 데드크로스 시 청산
4) 본청 > 수익이 0.5 포인트 이상 났다가 평균 진입가로 되돌아오면 진입가에 본청
MACD 데드 크로스 시 매도
1) 진입 > 완성된 봉의 종가 기준 +1틱, +2틱,+3틱 1계약씩 매도(또는 2계약씩)
2) 손절 > 평균 진입가 대비 0.3 포인트 손실시 손절
3) 수익청산 > 평균 진입가 대비 0.5 포인트 수익시 1개 청산, 0.7 포인트 수익시 1개 청산,
마지막 1개는 5이평선이 10이평선 골든크로스 시 청산
4) 본청 > 수익이 0.5 포인트 이상 났다가 평균 진입가로 되돌아오면 진입가에 본청
모든 포지션은 오후 3시에 강제청산
이상입니다.
좋은 주말보내세요. 감사합니다.
답변 1
예스스탁 예스스탁 답변
2016-10-07 15:19:38
안녕하세요
예스스탁입니다.
분할진입이므로
시스템 트레이딩 설정창의 피라미딩탭에서
다른진입신호만 허용으로 설정하고 적용하셔야 합니다.
input : Short(12),Long(26),sig(9),P1(5),P2(10),vol(1);
var : MACDV(0),MACDS(0),EP(0),mav1(0),mav2(0);
var : Bxcond1(false),Bxcond2(false),Bxcond3(false);
var : Sxcond1(false),Sxcond2(false),Sxcond3(false);
MACDV = MACD(short,long);
MACDS = ema(MACDV,sig);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
if crossup(MACDV,MACDS) then{
EP = C;
buy("b1",atlimit,EP-PriceScale*1,vol);
buy("b2",atlimit,EP-PriceScale*2,vol);
buy("b3",atlimit,EP-PriceScale*3,vol);
}
if MarketPosition == 1 Then{
ExitLong("bl",AtStop,AvgEntryPrice-0.3);
if lowest(L,BarsSinceEntry+1) > EP[BarsSinceEntry]-PriceScale*1 Then
buy("b1.",atlimit,EP-PriceScale*1);
if lowest(L,BarsSinceEntry+1) > EP[BarsSinceEntry]-PriceScale*2 Then
buy("b2.",atlimit,EP-PriceScale*2);
if lowest(L,BarsSinceEntry+1) > EP[BarsSinceEntry]-PriceScale*3 Then
buy("b3.",atlimit,EP-PriceScale*3);
if LatestExitName(0) == "bx1" Then
Bxcond1 = true;
if LatestExitName(0) == "bx2" Then
Bxcond2 = true;
if LatestExitName(0) == "bx3" Then
Bxcond3 = true;
if Bxcond1 == false Then
ExitLong("bx1",atlimit,AvgEntryPrice+0.5,"",vol,1);
if Bxcond2 == false Then
ExitLong("bx2",atlimit,AvgEntryPrice+0.7,"",vol,1);
if Bxcond3 == false and CrossDown(mav1,mav2) Then
ExitLong("bx3",OnClose,def,"",vol,1);
}
Else{
Bxcond1 = false;
Bxcond2 = false;
Bxcond3 = false;
}
if CrossDown(MACDV,MACDS) then{
EP = C;
Sell("s1",atlimit,EP+PriceScale*1,vol);
Sell("s2",atlimit,EP+PriceScale*2,vol);
Sell("s3",atlimit,EP+PriceScale*3,vol);
}
if MarketPosition == -1 Then{
ExitShort("sl",AtStop,AvgEntryPrice+0.3);
if highest(H,BarsSinceEntry+1) < EP[BarsSinceEntry]+PriceScale*1 Then
sell("s1.",atlimit,EP+PriceScale*1);
if highest(H,BarsSinceEntry+1) < EP[BarsSinceEntry]+PriceScale*2 Then
sell("s2.",atlimit,EP+PriceScale*2);
if highest(H,BarsSinceEntry+1) < EP[BarsSinceEntry]+PriceScale*3 Then
sell("s3.",atlimit,EP+PriceScale*3);
if LatestExitName(0) == "sx1" Then
Sxcond1 = true;
if LatestExitName(0) == "sx2" Then
Sxcond2 = true;
if LatestExitName(0) == "sx3" Then
Sxcond3 = true;
if Sxcond1 == false Then
ExitShort("sx1",atlimit,AvgEntryPrice-0.5,"",vol,1);
if Sxcond2 == false Then
ExitShort("sx2",atlimit,AvgEntryPrice-0.7,"",vol,1);
if Sxcond3 == false and CrossUp(mav1,mav2) Then
ExitShort("sx3",OnClose,def,"",vol,1);
}
Else{
Sxcond1 = false;
Sxcond2 = false;
Sxcond3 = false;
}
SetStopEndofday(150000);
즐거운 하루되세요
> 맘속의행복 님이 쓴 글입니다.
> 제목 : 질문드립니다
> 수고하십니다.
최근 예스랭귀지 수식 공부를 시작했는데 답변주시는 수식들이 큰 도움이 되고있습니다.
기초가 잡히지 전까진 질문을 종종 드려야 될 거 같습니다;;
이번 질문은 국내선물 시스템 매매 수식인데요.
MACD 골든 크로스 시 매수
1) 진입 > 완성된 봉의 종가 기준 -1틱, -2틱,-3틱 1계약씩 매수(또는 2계약씩)
2) 손절 > 평균 진입가 대비 0.3 포인트 손실시 손절
3) 수익청산 > 평균 진입가 대비 0.5 포인트 수익시 1개 청산, 0.7 포인트 수익시 1개 청산,
마지막 1개는 5이평선이 10이평선 데드크로스 시 청산
4) 본청 > 수익이 0.5 포인트 이상 났다가 평균 진입가로 되돌아오면 진입가에 본청
MACD 데드 크로스 시 매도
1) 진입 > 완성된 봉의 종가 기준 +1틱, +2틱,+3틱 1계약씩 매도(또는 2계약씩)
2) 손절 > 평균 진입가 대비 0.3 포인트 손실시 손절
3) 수익청산 > 평균 진입가 대비 0.5 포인트 수익시 1개 청산, 0.7 포인트 수익시 1개 청산,
마지막 1개는 5이평선이 10이평선 골든크로스 시 청산
4) 본청 > 수익이 0.5 포인트 이상 났다가 평균 진입가로 되돌아오면 진입가에 본청
모든 포지션은 오후 3시에 강제청산
이상입니다.
좋은 주말보내세요. 감사합니다.
다음글
이전글