커뮤니티

수식 부탁합니다.

프로필 이미지
음양조파
2020-10-31 10:52:51
796
글번호 143536
답변완료
수고가 많으십니다. 식 부탁드립니다. 1. 10봉, 20봉 이평선이 정배열이 된 상태에서 봉들이 진행 중 어느 봉의 하단이 처음으로 10봉이평선을 터치한 이후에 봉들이 2개 이상 저점을 높이다가 최초로 저점을 하향돌파하면 첫번째 한 개 매도 진입 그리고 다시 봉들이 2개 이상 저점을 높이다가 두 번 저점을 하향돌파하면 두번째 두 개 매도 진입 ...이런 식으로 세 번째는 세 개, 네번 째는 네 개...계속 같은 조건이 오면 같은 방식으로 반복해서 누적진입 진입회수가 몇이 되었든, 현재 가격이 재고 물량의 평균가보다 20틱 이익이면(즉 한 개면 20틱, 2개면 40틱, 3개면 60틱 이익 상황이 되겠지요? 4틱이 1포인트입니다.) 전량 청산 반대 상황에서 이번에는 10봉,20봉 이평선이 역배열...마찬가지 방식으로 진입 청산 2. 위 식에서, 전량 청산 조건을 평균가보다 20틱 이익아 아니라, 수량 상관없이 모두 합한 총 이익이 100틱(즉 한 포인트당 4틱이라면 총 이익이 25포인트)이면 청산하라고 하려면 어떻게 변용하나요? 또, 진입물량을 순서대로 늘리지 않고 그냥 동일 물량으로 하려면 어떻게 변용하나요? 감사합니다!!!!
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-11-02 11:49:06

안녕하세요 예스스탁입니다. 추가진입하는 전략이므로 설정창에서 피라미딩을 모든진입신호 허용으로 설정하고 적용하시면 됩니다. 1 input : P1(10),P2(20); var : mav1(0),mav2(0),T(0),ii(0); mav1 = ma(C,P1); mav2 = ma(C,P2); if TotalTrades > TotalTrades[1] then { if IsExitName("bx",1) == true or IsExitName("sx",1) == true then T = 0; } if CrossUp(mav1,mav2) Then { T = 1; ii = Index; value1 = 0; value2 = 0; } if CrossDown(mav1,mav2) Then { T = -1; ii = Index; value1 = 0; value2 = 0; } if T == 1 and Index > ii and CrossDown(L,mav1) Then { T = 2; ii = Index; } if T == 2 and Index > ii and L > L[1] Then { ii = Index; value1 = value1+1; if value1 == 2 Then T = 3; } if T == 3 and Index > ii and L < L[1] Then { ii = Index; value2 = value2+1; if Value2 > 0 Then Sell("s",OnClose,DEf,value2); } if T == -1 and Index > ii and CrossUp(H,mav1) Then { T = -2; ii = Index; } if T == -2 and Index > ii and H < H[1] Then { ii = Index; value1 = value1+1; if value1 == 2 Then T = -3; } if T == -3 and Index > ii and H > H[1] Then { ii = Index; value2 = value2+1; if Value2 > 0 Then Buy("b",OnClose,DEf,value2); } if MarketPosition == -1 Then { ExitShort("sx",AtLimit,AvgEntryPrice-PriceScale*20); } if MarketPosition == 1 Then { ExitLong("bx",AtLimit,AvgEntryPrice+PriceScale*20); } 2 input : P1(10),P2(20),총이익틱수(100); var : mav1(0),mav2(0),T(0),ii(0),profit(0); mav1 = ma(C,P1); mav2 = ma(C,P2); profit = PriceScale*총이익틱수; if TotalTrades > TotalTrades[1] then { if IsExitName("bx",1) == true or IsExitName("sx",1) == true then T = 0; } if CrossUp(mav1,mav2) Then { T = 1; ii = Index; value1 = 0; value2 = 0; } if CrossDown(mav1,mav2) Then { T = -1; ii = Index; value1 = 0; value2 = 0; } if T == 1 and Index > ii and CrossDown(L,mav1) Then { T = 2; ii = Index; } if T == 2 and Index > ii and L > L[1] Then { ii = Index; value1 = value1+1; if value1 == 2 Then T = 3; } if T == 3 and Index > ii and L < L[1] Then { ii = Index; value2 = value2+1; if Value2 > 0 Then Sell("s",OnClose,DEf,value2); } if T == -1 and Index > ii and CrossUp(H,mav1) Then { T = -2; ii = Index; } if T == -2 and Index > ii and H < H[1] Then { ii = Index; value1 = value1+1; if value1 == 2 Then T = -3; } if T == -3 and Index > ii and H > H[1] Then { ii = Index; value2 = value2+1; if Value2 > 0 Then Buy("b",OnClose,DEf,value2); } if MarketPosition == -1 Then { var1 = profit-PositionProfit(0); ExitShort("sx",AtLimit,C-(var1/CurrentContracts)); } if MarketPosition == 1 Then { var1 = profit-PositionProfit(0); ExitLong("bx",atlimit,C+(var1/CurrentContracts)); } 즐거운 하루되세요 > 음양조파 님이 쓴 글입니다. > 제목 : 수식 부탁합니다. > 수고가 많으십니다. 식 부탁드립니다. 1. 10봉, 20봉 이평선이 정배열이 된 상태에서 봉들이 진행 중 어느 봉의 하단이 처음으로 10봉이평선을 터치한 이후에 봉들이 2개 이상 저점을 높이다가 최초로 저점을 하향돌파하면 첫번째 한 개 매도 진입 그리고 다시 봉들이 2개 이상 저점을 높이다가 두 번 저점을 하향돌파하면 두번째 두 개 매도 진입 ...이런 식으로 세 번째는 세 개, 네번 째는 네 개...계속 같은 조건이 오면 같은 방식으로 반복해서 누적진입 진입회수가 몇이 되었든, 현재 가격이 재고 물량의 평균가보다 20틱 이익이면(즉 한 개면 20틱, 2개면 40틱, 3개면 60틱 이익 상황이 되겠지요? 4틱이 1포인트입니다.) 전량 청산 반대 상황에서 이번에는 10봉,20봉 이평선이 역배열...마찬가지 방식으로 진입 청산 2. 위 식에서, 전량 청산 조건을 평균가보다 20틱 이익아 아니라, 수량 상관없이 모두 합한 총 이익이 100틱(즉 한 포인트당 4틱이라면 총 이익이 25포인트)이면 청산하라고 하려면 어떻게 변용하나요? 또, 진입물량을 순서대로 늘리지 않고 그냥 동일 물량으로 하려면 어떻게 변용하나요? 감사합니다!!!!