커뮤니티
수식검토부탁합니다.
2012-02-19 23:35:32
325
글번호 47928
매수진입.
1. 9개봉 단기이평이 18개봉 장기이평 상향교차하면 이전 12개봉의 최고가를 갖고
여기에 1.03을 곱한다. 이 값이 진입가격이다.
2.이평선 상향교차가 나면 진입가에 buy stop 주문을 넣는다. 이 주문은 교차 이후
12개의 봉이 완성될 때까지 유효하다.
3. 만약 매수포지션을 가지고잇다가 매수 청산규칙에 의해 청산하였다면
최근 10개봉의 최고가에 buy stop 주문을 걸고 청산 이후 15개 봉까지 이 주문이
유효하도록 한다.
매도진입
1. 9개봉 단기이평이 18개봉 장기이평 하향교차하면 이전 12개 봉의 최저가를 갖고
여기에 0.97을 곱한다. 이 값이 매도진입가격이다.
2. 이평선 하향교차가 나면 진입가에 sell stop 주문을 넣는다. 이 주문은 교차 이후
12개의 봉이 완성될때까지 유효하다.
3. 만약 매도 포지션을 가지고 있다가 매도 청산규칙에 의해 청산하였다면
최근 10개봉의 최저가에 sell stop 주문을 걸고 청산 이후 15개의 봉까지 이주문이
유효하도록 한다.
이 논리로 수식작성했는데 맞는지 검토좀해주세요.
Input:FastLen(9),SlowLen(18),ChLen(12),TrailBar(8),ReBars(15);
var:FastMA(0),SlowMa(0),LEntryPrice(0),SEntryPrice(0),LCount(-999),
Scount(-999),ReEntryCount(0),currentPosion(0);
FastMa = Average(Close,FastLen);
SLowMa = Average(Close,SlowLen);
//매수포지션진입
If CrossUp(FastMa,SlowMa) And BarIndex > 1 then {
LEntryPrice = Highest(H,ChLen) * 1.03;
LCount = BarIndex;
}
If MarketPosition <> 1 And BarIndex < LCount + Chlen Then
Buy("Cross Over Buy",AtStop,LEntryPrice);
//매도포지션진입
If CrossDown(FastMa,SlowMa) And BarIndex > 1 Then {
SEntryPrice = Lowest(L,Chlen) * 0.97;
SCount = BarIndex;
}
If MarketPosition <> -1 And BarIndex < SCount + ChLen Then
Sell("CrossDown Sell",Atstop,SEntryPrice);
//Trailing Stop에 의한 청산
//매수포지션 청산
If MarketPosition == 1 Then
ExitLong("매수포지션청산",Atstop,Lowest(L,trailBar));
If MarketPosition == -1 Then
ExitShort("매도포지션청산",Atstop,Highest(H,Trailbar));
//재진입
CurrentPosion = MarketPosition;
If CurrentPosion == 0 And CurrentPosion[1] == 1 Then
ReEntryCount = 1;
If CurrentPosion == 0 And CurrentPosion[1] == -1 Then
ReEntryCount = 1;
If MarketPosition == 0 And MarketPosition[1] == 1 And ReEntryCount < ReBars Then
Buy("매수재진입",Atstop,Highest(H,10));
If MarketPosition == 0 And MarketPosition[1] == -1 And ReEntryCount < Rebars Then
Sell("매도재진입",AtStop,Lowest(L,10));
답변 1
예스스탁 예스스탁 답변
2012-02-20 14:53:55
안녕하세요
예스스탁입니다.
직전거래의 포지션은 MarketPosition(1)입니다.
재진입 부분만 아래와 같이 수정하시면 되며
청산이후에 경과된 봉수는 BarsSinceExit(1)으로 카운트 하시면 됩니다.
If MarketPosition == 0 And MarketPosition(1) == 1 And BarsSinceExit(1) < ReBars Then
Buy("매수재진입",Atstop,Highest(H,10));
If MarketPosition == 0 And MarketPosition(1) == -1 And BarsSinceExit(1) < Rebars Then
Sell("매도재진입",AtStop,Lowest(L,10));
즐거운 하루되세요
> 타고난스캘퍼 님이 쓴 글입니다.
> 제목 : 수식검토부탁합니다.
> 매수진입.
1. 9개봉 단기이평이 18개봉 장기이평 상향교차하면 이전 12개봉의 최고가를 갖고
여기에 1.03을 곱한다. 이 값이 진입가격이다.
2.이평선 상향교차가 나면 진입가에 buy stop 주문을 넣는다. 이 주문은 교차 이후
12개의 봉이 완성될 때까지 유효하다.
3. 만약 매수포지션을 가지고잇다가 매수 청산규칙에 의해 청산하였다면
최근 10개봉의 최고가에 buy stop 주문을 걸고 청산 이후 15개 봉까지 이 주문이
유효하도록 한다.
매도진입
1. 9개봉 단기이평이 18개봉 장기이평 하향교차하면 이전 12개 봉의 최저가를 갖고
여기에 0.97을 곱한다. 이 값이 매도진입가격이다.
2. 이평선 하향교차가 나면 진입가에 sell stop 주문을 넣는다. 이 주문은 교차 이후
12개의 봉이 완성될때까지 유효하다.
3. 만약 매도 포지션을 가지고 있다가 매도 청산규칙에 의해 청산하였다면
최근 10개봉의 최저가에 sell stop 주문을 걸고 청산 이후 15개의 봉까지 이주문이
유효하도록 한다.
이 논리로 수식작성했는데 맞는지 검토좀해주세요.
Input:FastLen(9),SlowLen(18),ChLen(12),TrailBar(8),ReBars(15);
var:FastMA(0),SlowMa(0),LEntryPrice(0),SEntryPrice(0),LCount(-999),
Scount(-999),ReEntryCount(0),currentPosion(0);
FastMa = Average(Close,FastLen);
SLowMa = Average(Close,SlowLen);
//매수포지션진입
If CrossUp(FastMa,SlowMa) And BarIndex > 1 then {
LEntryPrice = Highest(H,ChLen) * 1.03;
LCount = BarIndex;
}
If MarketPosition <> 1 And BarIndex < LCount + Chlen Then
Buy("Cross Over Buy",AtStop,LEntryPrice);
//매도포지션진입
If CrossDown(FastMa,SlowMa) And BarIndex > 1 Then {
SEntryPrice = Lowest(L,Chlen) * 0.97;
SCount = BarIndex;
}
If MarketPosition <> -1 And BarIndex < SCount + ChLen Then
Sell("CrossDown Sell",Atstop,SEntryPrice);
//Trailing Stop에 의한 청산
//매수포지션 청산
If MarketPosition == 1 Then
ExitLong("매수포지션청산",Atstop,Lowest(L,trailBar));
If MarketPosition == -1 Then
ExitShort("매도포지션청산",Atstop,Highest(H,Trailbar));
//재진입
CurrentPosion = MarketPosition;
If CurrentPosion == 0 And CurrentPosion[1] == 1 Then
ReEntryCount = 1;
If CurrentPosion == 0 And CurrentPosion[1] == -1 Then
ReEntryCount = 1;
If MarketPosition == 0 And MarketPosition[1] == 1 And ReEntryCount < ReBars Then
Buy("매수재진입",Atstop,Highest(H,10));
If MarketPosition == 0 And MarketPosition[1] == -1 And ReEntryCount < Rebars Then
Sell("매도재진입",AtStop,Lowest(L,10));
다음글
이전글