커뮤니티

코드에서 여쭤볼게 있습니다.

프로필 이미지
매크로트레이더
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봉 내에서 발생하게 식이 작성되어 있습니다. 진입이 되고 몇봉 후에 바로 청산&#46124;을때 아직 직전 골든이나 데드크로스 지점으로 부터 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로 셋팅해주는지 잘 모르겠습니다. 이부분 설명해주시겠습니까?