커뮤니티

산식수정

프로필 이미지
티끌
2012-08-27 01:50:12
268
글번호 54090
답변완료

첨부 이미지

질문1)그림참조 그림에서 발생하는 청산후 즉시재진입문제를 해결하기 위해서 아래와 같이 BarsSinceExit 을 사용했습니다만 잘 않되네요 함수의 용법이 틀리는지 검토 부탁드립니다 If (M6_1Ui[0]-M6_1Di[0])>0 and (M6_1Ui[0]-M6_1Di[0])<=20 and CountIF(M6_0<0, (M6_1Ui[0]-M6_1Di[0]))==0 and OR00[0]>0 and BarsSinceExit(1)>3 Then // Buy("Buy01",AtMarket); 질문2) 손절식에서 atstop을 atmarket로 변경을해보려고 아래와 같이 했는데 작동이 않됩니 다. 수정부탁드립니다 if MarketPosition == 1 and EntryPrice<(EntryPrice-1) Then exitlong("loss",AtMarket);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-08-27 13:45:24

안녕하세요 예스스탁입니다. 1. 작성하신 식이 매수진입 중에 청산과 진입이 동시에 발생하는 내용이므로 BarsSinceExit(1)로는 제어할 수 없습니다. 아래와 같이 작성하시면 buy신호가 무포지션이나 매도포지션 상태에서만 발생하므로 매수상태에서는 발생하지 않습니다. If MarketPosition <= 0 and TotalTrades > 0 and (M6_1Ui[0]-M6_1Di[0])>0 and (M6_1Ui[0]-M6_1Di[0])<=20 and CountIF(M6_0<0, (M6_1Ui[0]-M6_1Di[0]))==0 and OR00[0]>0 and BarsSinceExit(1)>3 Then // Buy("Buy02",AtMarket); 또한 진입식에 BarsSinceExit(1)>3이 있으면 차트상 가장 첫번째 진입이 나올수 없습니다. 첫진입은 이전에 청산이 없으므로 해당 조건이 만족하지 않습니다. 아래와 같이 첫진입과 그 이후진입을 구분하셔야 합니다. 다른 buy신호가 있으면 필요없는 부분입니다. If MarketPosition <= 0 and TotalTrades == 0 and (M6_1Ui[0]-M6_1Di[0])>0 and (M6_1Ui[0]-M6_1Di[0])<=20 and CountIF(M6_0<0, (M6_1Ui[0]-M6_1Di[0]))==0 and OR00[0]>0 and BarsSinceExit(1)>3 Then // Buy("Buy01",AtMarket); If MarketPosition <= 0 and TotalTrades > 0 and (M6_1Ui[0]-M6_1Di[0])>0 and (M6_1Ui[0]-M6_1Di[0])<=20 and CountIF(M6_0<0, (M6_1Ui[0]-M6_1Di[0]))==0 and OR00[0]>0 and BarsSinceExit(1)>3 Then // Buy("Buy02",AtMarket); 2 진입가가 진입가-1보다 작을 수 없으므로 신호가 발생하지 않습니다. 현재가와 진입가-1을 비교하셔야 합니다. if MarketPosition == 1 and C <= (EntryPrice-1) Then exitlong("loss",AtMarket); 즐거운 하루되세요 > 티끌 님이 쓴 글입니다. > 제목 : 산식수정 > 질문1)그림참조 그림에서 발생하는 청산후 즉시재진입문제를 해결하기 위해서 아래와 같이 BarsSinceExit 을 사용했습니다만 잘 않되네요 함수의 용법이 틀리는지 검토 부탁드립니다 If (M6_1Ui[0]-M6_1Di[0])>0 and (M6_1Ui[0]-M6_1Di[0])<=20 and CountIF(M6_0<0, (M6_1Ui[0]-M6_1Di[0]))==0 and OR00[0]>0 and BarsSinceExit(1)>3 Then // Buy("Buy01",AtMarket); 질문2) 손절식에서 atstop을 atmarket로 변경을해보려고 아래와 같이 했는데 작동이 않됩니 다. 수정부탁드립니다 if MarketPosition == 1 and EntryPrice<(EntryPrice-1) Then exitlong("loss",AtMarket);