커뮤니티

질문드립니다.

프로필 이미지
yanartas
2015-10-09 09:54:35
120
글번호 91092
답변완료
질문드립니다. 선물 일봉에서 시스템을 작성하려고 합니다. 현재 진입과 청산을 모두 atstop으로 작성하고자 합니다. 질문1. 청산식에서 ExitLong("xl",AtStop, Ma(C, 10)); 과 if marketposition == 1 then { ExitLong("xl",AtStop, Ma(C, 10)); } 과는 서로 다른가요? 다르다면 어떤 부분에서 다른 것 인가요? 그리고 진입이 시작된 시점부터(즉, 그봉부터) 청산식이 작동하게 하려면 어떤 수식을 사용해야 하는것 인가요? 간단한 예시와 함께 부탁드립니다. 질문2. setstoploss, setstopprofittarget, setstoptriling의 함수를 Long, Short 진입에 따라 각각 적용하려면 어떻게 수식을 작성해야 하나요? 그리고 Long과 Short에 각각 적용하되 진입된 그 시점부터 저 함수들이 작동하게 하고 싶습니다. 즉, 요지는 위 함수들이 Long과 Short에서 각각 진입된 봉부터 작동하도록 수식을 작동하고 싶습니다. 진입은 atstop으로 되어있다고 가정합니다. 간단한 예시와 함께 수식에 간단한 설명도 부탁드립니다. 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-10-12 13:51:54

안녕하세요 예스스탁입니다. 1. #1 ExitLong("xl",AtStop, Ma(C, 10)); #2 if marketposition == 1 then { ExitLong("xl",AtStop, Ma(C, 10)); } 위 식은 같은 내용입니다. 다만 #1은 진입봉에서도 신호가 발생할수 잇고 #2는 if marketposition == 1 then으로 인해 진입신호가 발생하고 한봉 완성이후에 발생하게 됩니다. 진입봉에서부터 발생하고자 하시면 #1식 사용하시면 됩니다. 2. 아래 내용 참고하시기 바랍니다. setstoptriling은 풀어서 작성하면 진입봉에서 조건판단해서 신호발생하게 작성을 할수 없습니다. setstoptriling은 하나의 봉에서 수익조건과 수익감소를 모두 판단하는데 풀어서 작성하면 진입이 최고수익은 if문으로만 작성이 가능해서 봉완성시로만 판단가능합니다. 최근 완성봉 기준 수익기준이 만족하면 다음봉 미완성시에 수익감소하면 즉시 청산합니다. if 매수진입조건 Then{ buy("b",AtStop,매수스탑가격); #SetStopProfittarget(0.5,PointStop); if NextBarOpen >= 매수스탑가격 Then ExitLong("BP11",atlimit,NextBarOpen+0.5); Else ExitLong("BP12",atlimit,매수스탑가격+0.5); #SetStopProfittarget(0.5,PercentStop); if NextBarOpen >= 매수스탑가격 Then ExitLong("BP21",atlimit,NextBarOpen*1.005); Else ExitLong("BP22",atlimit,매수스탑가격*1.005); #SetStopLoss(0.5,PointStop); if NextBarOpen >= 매수스탑가격 Then ExitLong("BL11",AtStop,NextBarOpen-0.5); Else ExitLong("BL12",AtStop,매수스탑가격-0.5); #SetStopLoss(0.5,PercentStop); if NextBarOpen >= 매수스탑가격 Then ExitLong("BL21",AtStop,NextBarOpen*0.995); Else ExitLong("BL22",AtStop,매수스탑가격*0.995); } if 매도진입조건 Then{ sell("s",AtStop,매도스탑가격); #SetStopProfittarget(0.5,PointStop); if NextBarOpen <= 매도스탑가격 Then ExitShort("SP11",atlimit,NextBarOpen-0.5); Else ExitShort("SP12",atlimit,매도스탑가격-0.5); #SetStopProfittarget(0.5,PercentStop); if NextBarOpen <= 매도스탑가격 Then ExitShort("SP21",atlimit,NextBarOpen*0.995); Else ExitShort("SP22",AtLimit,매도스탑가격*0.995); #SetStopLoss(0.5,PointStop); if NextBarOpen <= 매도스탑가격 Then ExitShort("SL11",AtStop,NextBarOpen+0.5); Else ExitShort("SL12",AtStop,매도스탑가격+0.5); #SetStopLoss(0.5,PercentStop); if NextBarOpen <= 매도스탑가격 Then ExitShort("SL21",AtStop,NextBarOpen*1.005); Else ExitShort("SL22",AtStop,매도스탑가격*1.05); } if MarketPosition == 1 Then{ #SetStopProfittarget(0.5,PointStop); exitlong("BP1",AtLimit,EntryPrice+0.5); #SetStopProfittarget(0.5,PercentStop); exitlong("BP2",AtLimit,EntryPrice*1.005); #SetStopLoss(0.5,PointStop); exitlong("BL1",AtStop,EntryPrice-0.5); #SetStopLoss(0.5,PercentStop); exitlong("BL2",AtStop,EntryPrice*0.995); #SetStopTrailing(0.5,1,PointStop); if highest(H,BarsSinceEntry) >= EntryPrice+1 Then ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)-0.5); #SetStopTrailing(50,1,PercentStop,0); if highest(H,BarsSinceEntry) >= EntryPrice*1.01 Then ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)-abs(highest(H,BarsSinceEntry)-EntryPrice)*0.5); } if MarketPosition == -1 Then{ #SetStopProfittarget(0.5,PointStop); ExitShort("SP1",AtLimit,EntryPrice-0.5); #SetStopProfittarget(0.5,PercentStop); ExitShort("SP2",AtLimit,EntryPrice*0.995); #SetStopLoss(0.5,PointStop); ExitShort("SL1",AtStop,EntryPrice+0.5); #SetStopLoss(0.5,PercentStop); ExitShort("SL2",AtStop,EntryPrice*1.005); #SetStopTrailing(0.5,1,PointStop); if Lowest(L,BarsSinceEntry) <= EntryPrice-1 Then ExitShort("Str1",AtStop,Lowest(L,BarsSinceEntry)+0.5); #SetStopTrailing(50,1,PercentStop,0); if Lowest(L,BarsSinceEntry) <= EntryPrice*0.99 Then ExitShort("Str2",AtStop,Lowest(L,BarsSinceEntry)+abs(Lowest(L,BarsSinceEntry)-EntryPrice)*0.5); } 즐거운 하루되세요 > yanartas 님이 쓴 글입니다. > 제목 : 질문드립니다. > 질문드립니다. 선물 일봉에서 시스템을 작성하려고 합니다. 현재 진입과 청산을 모두 atstop으로 작성하고자 합니다. 질문1. 청산식에서 ExitLong("xl",AtStop, Ma(C, 10)); 과 if marketposition == 1 then { ExitLong("xl",AtStop, Ma(C, 10)); } 과는 서로 다른가요? 다르다면 어떤 부분에서 다른 것 인가요? 그리고 진입이 시작된 시점부터(즉, 그봉부터) 청산식이 작동하게 하려면 어떤 수식을 사용해야 하는것 인가요? 간단한 예시와 함께 부탁드립니다. 질문2. setstoploss, setstopprofittarget, setstoptriling의 함수를 Long, Short 진입에 따라 각각 적용하려면 어떻게 수식을 작성해야 하나요? 그리고 Long과 Short에 각각 적용하되 진입된 그 시점부터 저 함수들이 작동하게 하고 싶습니다. 즉, 요지는 위 함수들이 Long과 Short에서 각각 진입된 봉부터 작동하도록 수식을 작동하고 싶습니다. 진입은 atstop으로 되어있다고 가정합니다. 간단한 예시와 함께 수식에 간단한 설명도 부탁드립니다. 감사합니다.