커뮤니티

문의드립니다.

프로필 이미지
산골소년
2024-04-18 05:34:06
642
글번호 178687
답변완료
늘 고맙습니다. 친절한 답변에 많은 도움이 됩니다. # 아래와 같은 매수와 매도의 식을 작성하여 돌려보았습니다. 매수 또는 매도를 따로 돌리면 원하는 자리에서 신호가 나옵니다. 그런데, 아래와 같이 매수와 매도를 같이 놓고 돌리면 원하는 자리가 아닌 곳에서 매수와 매도 신호가 나옵니다. 가령 매도만 돌리면 네번의 신호가 나오는데 같이 돌리면 매도가 열번 이상의 신호가 나옵니다. 매수도 마찬가지입니다. 왜그런건지 전혀 모르겠습니다. 도움 부탁드립니다. ### 매수 if 조건1 && 조건2 && 조건3 Then { Var1 = L+(H-L)*(1/3); var2 = Index; } if var1 > 0 and var2 > 0 && Index < var2 + 5 Then Buy("B",AtLimit,Var1); if MarketPosition == 1 Then { if LatestEntryName(0) == "B" Then var1 = 0; } #매수청산 if MarketPosition == 1 Then { SetStopProfittarget(10,PointStop); SetStopLoss(10, PointStop); } ### 매도 if 조건1 && 조건2 && 조건3 Then { Var1 = L+(h-L)*(2/3); var2 = Index; } if var1 > 0 and var2 > 0 && Index < var2 + 5 Then Sell("S",AtLimit,Var1); if MarketPosition == -1 Then { if LatestEntryName(0) == "S" Then var1 = 0; } #매도청산 if MarketPosition == -1 Then { SetStopProfittarget(10,PointStop); SetStopLoss(10, PointStop); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-04-18 10:52:05

안녕하세요 예스스탁입니다. 1 수식은 위에서 아래로 내려가며 읽게 됩니다. ### 매수 if 조건1 && 조건2 && 조건3 Then { Var1 = L+(H-L)*(1/3); var2 = Index; } ### 매도 if 조건1 && 조건2 && 조건3 Then { Var1 = L+(H-L)*(1/3); var2 = Index; } 동일한 조건일때 동일한 변수에 var1과 var2에 저장되게 되어 있어 최종적으로는 하단에 있는 값으로 저장이 됩니다. 그러므로 조건만족한 첫봉을 제외하면 나머지 봉에서는 매수나 매도 모두 Var1 = L+(H-L)*(1/3)값을 기준으로 셋팅이 됩니다. 매도와 매수에 사용되는 값을 다른이름의 변수에 저장해 사용하셔야 합니다. 2 atlimit을 사용하고 봉완성시에 if 조건이 만족하면 셋팅하고 다음봉 현재가와 비교를 합니다. 우선 if 조건으로 동일조건으로 매도진입과 매수진입을 함께 셋팅을 하므로 동일변수에 지정한 값으로 셋팅을 하므로 매수진입과 매도진입이 한봉에서 발생할 수가 있습니다. 즉 Var1값 이하이면 매수, 이상이면 매도이므로 한봉에 2개의 신호가 동시발생이 가능합니다. Buy와 Sell은 진입합수입니다. 포지션에서 진입중에 반대방향 진입신호가 발생하면 해당 포지션 청산하고 반대방향으로 진입하게 됩니다. 기존 매수나 매도식으로만 구성되었을 경우에는 매수진입하면 손절이나 익절로만 청산이 되지만 매수식과 매도식을 합치게 되면 진입후 반대방향 신호가 나오면 청산 후 반대방향 진입을 하므로 각각의 적용한 것보다 진입횟수가 더 많이 발생할수 있습니다. 3 올리신 수식에서 매수와 매도에 사용되는 변수를 각각 지정하게 처리해 드립니다. 봉미완성시에 가격조건만 충족되면 진입신호가 발생하는데 한봉에서 동시발생하는 부분은 별도로 처리가 가능하지 않습니다. ### 매수 if 조건1 && 조건2 && 조건3 Then { Var1 = L+(H-L)*(1/3); Var3 = L+(h-L)*(2/3); var2 = Index; } if var1 > 0 and var2 > 0 && Index < var2 + 5 Then Buy("B",AtLimit,Var1); if MarketPosition == 1 Then { if LatestEntryName(0) == "B" Then var1 = 0; } #매수청산 if MarketPosition == 1 Then { SetStopProfittarget(10,PointStop); SetStopLoss(10, PointStop); } ### 매도 if var3 > 0 and var2 > 0 && Index < var2 + 5 Then Sell("S",AtLimit,Var3); if MarketPosition == -1 Then { if LatestEntryName(0) == "S" Then var3 = 0; } #매도청산 if MarketPosition == -1 Then { SetStopProfittarget(10,PointStop); SetStopLoss(10, PointStop); } 즐거운 하루되세요 > 산골소년 님이 쓴 글입니다. > 제목 : 문의드립니다. > 늘 고맙습니다. 친절한 답변에 많은 도움이 됩니다. # 아래와 같은 매수와 매도의 식을 작성하여 돌려보았습니다. 매수 또는 매도를 따로 돌리면 원하는 자리에서 신호가 나옵니다. 그런데, 아래와 같이 매수와 매도를 같이 놓고 돌리면 원하는 자리가 아닌 곳에서 매수와 매도 신호가 나옵니다. 가령 매도만 돌리면 네번의 신호가 나오는데 같이 돌리면 매도가 열번 이상의 신호가 나옵니다. 매수도 마찬가지입니다. 왜그런건지 전혀 모르겠습니다. 도움 부탁드립니다. ### 매수 if 조건1 && 조건2 && 조건3 Then { Var1 = L+(H-L)*(1/3); var2 = Index; } if var1 > 0 and var2 > 0 && Index < var2 + 5 Then Buy("B",AtLimit,Var1); if MarketPosition == 1 Then { if LatestEntryName(0) == "B" Then var1 = 0; } #매수청산 if MarketPosition == 1 Then { SetStopProfittarget(10,PointStop); SetStopLoss(10, PointStop); } ### 매도 if 조건1 && 조건2 && 조건3 Then { Var1 = L+(h-L)*(2/3); var2 = Index; } if var1 > 0 and var2 > 0 && Index < var2 + 5 Then Sell("S",AtLimit,Var1); if MarketPosition == -1 Then { if LatestEntryName(0) == "S" Then var1 = 0; } #매도청산 if MarketPosition == -1 Then { SetStopProfittarget(10,PointStop); SetStopLoss(10, PointStop); }