커뮤니티
코드에서 여쭤볼게 있습니다.
2011-12-15 21:46:36
460
글번호 45821
nput: FastLen(10), SlowLen(500), ChLen(30), TrailBar(160), ReBars(2), stopPer(1.0);
Vars: FastMA(0), SlowMA(0),LEntryPrice(0), SEntryPrice(0), LCount(-999), SCount(-999), ReCnt(0), MP(0);
FastMA = ma(C , FastLen );
SlowMA = ma(C , SlowLen );
#이평선
If CrossUp(FastMA , SlowMA) and index > 1 then {
LEntryPrice = Highest(H , TrailBar )[1];
//단기 이평이 장기 이평을 상향 돌파하면 그 시점에서 최근 160봉 최고가를 구함
LCount = index;
}
If MarketPosition <> 1 AND index < LCount + ChLen then
Buy ("Cross Over Buy", atstop,LEntryPrice);
//골든 크로스 발생후 30봉 이내에 최근 160봉 최고가( LEntryPrice)에 도달하면 매수진입
If CrossDown(FastMA , SlowMA) and index > 1 then {
SEntryPrice = Lowest(L , TrailBar )[1];
//단기 이평이 장기 이평을 하향 돌파하면 그 시점에서 최근 160봉 최저가를 구함
SCount = index;
}
If MarketPosition <> -1 AND index < SCount + ChLen then
Sell ("Cross Under Sell", atstop,SEntryPrice );
//데드크로스 발생후 30봉 이내에 최근 160봉 최고가( LEntryPrice)에 도달하면 매수진입
If MarketPosition == 1 then {
LCount = -999;
ExitLong ("LongTStop", atstop, Lowest(L , TrailBar ));
//최근 160분봉의 최저가에 도달할 때 매수청산
}
If MarketPosition == -1 then {
SCount = -999;
ExitShort ("ShortTStop", atstop, Highest(H , TrailBar ));
//최근 160분봉의 최고가에 도달할 때 매수청산
}
SCount, LCount를 왜 -999로 셋팅해주는지 잘 모르겠습니다. 이부분 설명해주시겠습니까?
답변 1
예스스탁 예스스탁 답변
2011-12-16 11:05:20
안녕하세요
예스스탁입니다.
SCount, LCount 변수는
골든크로스나 데드크로스가 발생하면
그 봉의 index를 저정하는 변수이고.
진입은 골든이나 데드크로스 발생하고 30봉 내에서
발생하게 식이 작성되어 있습니다.
진입이 되고 몇봉 후에 바로 청산됬을때
아직 직전 골든이나 데드크로스 지점으로 부터
30봉이 넘지 않으면 또 신호가 발생할 수 있으므로
같은 골든이나 데드로는 진입신호가
두번이상 발생하지 않게 하기위해
SCount, LCount에 -999와 같은 낮은 값을 주어
index < SCount + ChLen 조건을 충족못하게 하는것입니다.
즐거운 하루되세요
> 매크로트레이더 님이 쓴 글입니다.
> 제목 : 코드에서 여쭤볼게 있습니다.
> nput: FastLen(10), SlowLen(500), ChLen(30), TrailBar(160), ReBars(2), stopPer(1.0);
Vars: FastMA(0), SlowMA(0),LEntryPrice(0), SEntryPrice(0), LCount(-999), SCount(-999), ReCnt(0), MP(0);
FastMA = ma(C , FastLen );
SlowMA = ma(C , SlowLen );
#이평선
If CrossUp(FastMA , SlowMA) and index > 1 then {
LEntryPrice = Highest(H , TrailBar )[1];
//단기 이평이 장기 이평을 상향 돌파하면 그 시점에서 최근 160봉 최고가를 구함
LCount = index;
}
If MarketPosition <> 1 AND index < LCount + ChLen then
Buy ("Cross Over Buy", atstop,LEntryPrice);
//골든 크로스 발생후 30봉 이내에 최근 160봉 최고가( LEntryPrice)에 도달하면 매수진입
If CrossDown(FastMA , SlowMA) and index > 1 then {
SEntryPrice = Lowest(L , TrailBar )[1];
//단기 이평이 장기 이평을 하향 돌파하면 그 시점에서 최근 160봉 최저가를 구함
SCount = index;
}
If MarketPosition <> -1 AND index < SCount + ChLen then
Sell ("Cross Under Sell", atstop,SEntryPrice );
//데드크로스 발생후 30봉 이내에 최근 160봉 최고가( LEntryPrice)에 도달하면 매수진입
If MarketPosition == 1 then {
LCount = -999;
ExitLong ("LongTStop", atstop, Lowest(L , TrailBar ));
//최근 160분봉의 최저가에 도달할 때 매수청산
}
If MarketPosition == -1 then {
SCount = -999;
ExitShort ("ShortTStop", atstop, Highest(H , TrailBar ));
//최근 160분봉의 최고가에 도달할 때 매수청산
}
SCount, LCount를 왜 -999로 셋팅해주는지 잘 모르겠습니다. 이부분 설명해주시겠습니까?