커뮤니티

문의드립니다.

프로필 이미지
엠제이
2012-05-17 09:15:18
404
글번호 51073
답변완료
첫번째 질문 매수한 봉에서 청산이 일어나는 문제가 발생되고 있습니다. MarketPosition == 0 buy("bx", atstop, 매수가격); 으로 매수하고 있고요 MarketPosition == 1 if 매수청산조건 then exitlong(); 으로 되어 있는데 - 매수한 봉에서 매수청산이 발생되지 않게 하는 방법 - 동일봉에서 매수조건/매도조건이 모두 성립시에는 매수를 하지 않고 건너뛰는 방법 에 대해서 알려주세요. 두번째 질문 제가 Stoploss(n)으로 해 놓았는데 매수봉에서 스탑이 발생하고 있습니다. 매수봉에서는 스탑이 적용되지 않고 다음봉부터 적용되게 할 수 없는지 궁금합니다. 또한 스탑이 적용되어서 청산된 경우 아직 매수청산조건이 성립이 안된 경우 그 다음봉에서 이전 스탑가격보다 상승시 재매수하는 식을 알려주세요. 세번째 질문 분봉에서 일봉의 이평선을 수식을 사용해서 적용을 하면 일봉 챠트에서는 크로스가 한번만 일어났는데 분봉에서는 여러번 발생해서 손실이 계속 늘어납니다. 이 부분을 해결하려면 어찌해야 되는지 궁금합니다. 분봉에서 data2를 활용하면 매수는 늦게하겠지만 신호가 잘못되는 경우는 없지 않을까 싶은데 조언 부탁드리겠습니다. 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-05-17 10:32:39

안녕하세요 예스스탁입니다. 1. if MarketPosition == 0 then buy("bx", atstop, 매수가격); if MarketPosition == 1 and BarsSinceEntry > 0 and 매수청산조건 then exitlong(); 동일봉에서 매수조건과 매도조건이 동시에 만족시 신호를 발생하지 않고자 하시면 아래와 같이 매수조건식에 매도조건이 만족하지 않았다는 내용을 추가해 주셔야 합니다. if 매수조건 and !(매도조건) then buy(); !(조건)은 조건이 만족하지 않았다는 표현입니다. ex) !(C< O) -->음봉이 아니다 2. 강제청산은 진입신호가 발생하면 바로 감시에 들어가게 되므로 강제청산 함수를 사용하지 않고 식을 풀어서 작성하셔야 합니다. input : N(5); if MarketPosition == 1 Then exitlong("BuyLoss",AtStop,EntryPrice(1-N/100)); 스탑이 적용되어서 청산된 경우 아직 매수청산조건이 성립이 안된 경우 그 다음봉에서 이전 스탑가격보다 상승시 재매수하는 식을 알려주세요. 위 내용은 정확한 내용을 잘 모르겠습니다. 좀더 정확한 내용 부탁드립니다. 3. 모든 데이터는 완성된 봉의 값만 사용이 가능합니다. 그러므토 주차트가 분봉이고 참조데이터로 일봉을 사용하면 당일 사용할 수 있는 참조데이터의 봉은 전일봉 까지입니다. 당일 크로스를 장중에 알수가 없습니다. 당일 크로스를 최종 확인할 수 있는 시점은 당일 장이 종료된 이후입니다. 이런 이유로 일봉데이터를 참조로 사용하지 않고 주차트의 데이터로 일봉이평을 구해 사용하게 됩니다. 아래식은 분봉에서 구현한 일봉이평이 골든크로스면 매수, 데드크로스면 매도하는 식이고 가장 처음 만족한 크로스로 한번만 신호가 발생합니다. 일봉 완성시의 최종크로스는 당일 장 종료전에는 알 수 없습니다. input : P1(5),P2(20); var : sumV1(0),maV1(0),count(0),sumV2(0),maV2(0),Predaymav1(0),Predaymav2(0); sumV1 = 0; sumV2 = 0; for count = 0 to P2{ if count < P1 Then sumV1 = sumV1+DayClose(count); if count < P2 Then sumV2 = sumV2+DayClose(count); } maV1 = sumV1 / P1; maV2 = sumV2 / P2; if date != date[1] Then{ Predaymav1 = mav1[1];#전일 일봉 5이평 Predaymav2 = mav2[1]; Condition1 = false; } if Condition1 == false then{ if crossup(maV1,maV2) and Predaymav1 > Predaymav2 Then{ buy(); } if CrossDown(maV1,maV2) and Predaymav1 > Predaymav2 Then{ Sell(); } } 당일값이 필요없으시면 참조데이터로 일봉차트를 두시고 data2(crossup(ma(c,5),ma(c,20))) 과 같이 작성해서 표현하시면 됩니다. 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : 문의드립니다. > 첫번째 질문 매수한 봉에서 청산이 일어나는 문제가 발생되고 있습니다. MarketPosition == 0 buy("bx", atstop, 매수가격); 으로 매수하고 있고요 MarketPosition == 1 if 매수청산조건 then exitlong(); 으로 되어 있는데 - 매수한 봉에서 매수청산이 발생되지 않게 하는 방법 - 동일봉에서 매수조건/매도조건이 모두 성립시에는 매수를 하지 않고 건너뛰는 방법 에 대해서 알려주세요. 두번째 질문 제가 Stoploss(n)으로 해 놓았는데 매수봉에서 스탑이 발생하고 있습니다. 매수봉에서는 스탑이 적용되지 않고 다음봉부터 적용되게 할 수 없는지 궁금합니다. 또한 스탑이 적용되어서 청산된 경우 아직 매수청산조건이 성립이 안된 경우 그 다음봉에서 이전 스탑가격보다 상승시 재매수하는 식을 알려주세요. 세번째 질문 분봉에서 일봉의 이평선을 수식을 사용해서 적용을 하면 일봉 챠트에서는 크로스가 한번만 일어났는데 분봉에서는 여러번 발생해서 손실이 계속 늘어납니다. 이 부분을 해결하려면 어찌해야 되는지 궁금합니다. 분봉에서 data2를 활용하면 매수는 늦게하겠지만 신호가 잘못되는 경우는 없지 않을까 싶은데 조언 부탁드리겠습니다. 감사합니다.