커뮤니티

문의

프로필 이미지
목마와숙녀
2025-03-27 12:03:12
278
글번호 189613
답변완료

첨부 이미지

아래 청산수식을 검토해주십시요. 문제점은 inactivity 청산에서 확인됩니다. (손절,추적스탑,익절은 구별이 힘든데 최소가격변화는 빈도가 적어서 문제를 발견했습니다) 청산수식 전체에 문제가 있을 거 같습니다. 첨부파일은 inactivity 청산내역입니다.(별첨1,2) inactivity 수식은 b1과 s1에는 없고 b2,b3와 s2,s3 수식에만 있는데 b1과 s1 청산결과에 나타납니다.(별첨1) s3를 시뮬레이션하면 값들이 나오는데 inactivity 청산결과는 없습니다.(별첨2) *진입내용 b1과 s1은 리버스 거래 b2는 고점돌파(직전 포지션 매수) b3는 고점돌파(직전 포지션 매도) s2는 저점돌파(직전 포지션 매수) s3는 저점돌파(직전 포지션 매도) *진입순서(b1,s1 신호가 모두 나온 후 고점이나 저점을 돌파할 때) b1-s1-b3 1차 매수 / 2차 매도 / 3차 고점돌파 b1-s1-s3 1차 매수 / 2차 매도 / 3차 저점돌파 s1-b1-b2 1차 매도 / 2차 매수 / 3차 고점돌파 s1-b1-s2 1차 매도 / 2차 매수 / 3차 저점돌파 항상 고맙습니다. ******************************************************************************* input : ls1(2.75),gl1(8.75),tr1(2.75); // 1차 b1진입 input : ls4(1.75),gl4(6.75),tr4(1.75); // 2차 s1진입 input : ls2(1),gl2(7.75),tr2(2.5); // 1차 s1진입 input : ls3(1.75),gl3(999999),tr3(1.75); // 2차 b1진입 input : bbls(1),bbgl(999999),bbtr(1.75),b2mi(999999),b2bg(999999); // 3차 "b2"진입 input : bsls(1.75),bsgl(999999),bstr(3.25),b3mi(999999),b3bg(999999);// 3차 "b3"진입 input : sbls(3),sbgl(999999),sbtr(3),s2mi(4.5),s2bg(1200); // 3차 "s2"진입 input : ssls(1.5),ssgl(1.25),sstr(2.25),s3mi(7),s3bg(2000); // 3차 "s3"진입 var : entry(0); if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 1 and IsEntryName("b1") == true Then { //매수진입이 첫진입일때 if entry == 1 Then { SetStopLoss(ls1,PointStop); SetStopProfittarget(gl1,PointStop); SetStopTrailing(tr1,0,PointStop); } Else //매수진입이 두번째진입일때 { SetStopLoss(ls3,PointStop); SetStopProfittarget(gl3,PointStop); SetStopTrailing(tr3,0,PointStop); } } Else if MarketPosition == -1 and IsEntryName("s1") == true Then { //매도진입이 첫진입일때 if entry == 1 Then { SetStopLoss(ls2,PointStop); SetStopProfittarget(gl2,PointStop); SetStopTrailing(tr2,0,PointStop); } Else //매도진입이 두번째진입일때 { SetStopLoss(ls4,PointStop); SetStopProfittarget(gl4,PointStop); SetStopTrailing(tr4,0,PointStop); } } if MarketPosition== 1 Then //고점돌파시 { if IsEntryName("b2") == true Then //직전 포지션 매수 { SetStopLoss(bbls,PointStop); SetStopProfittarget(bbgl,PointStop); SetStopTrailing(bbtr,0,PointStop,1); SetStopInactivity(b2mi,b2bg,PointStop); } Else if IsEntryName("b3") == true Then //직전 포지션 매도 { SetStopLoss(bsls,PointStop); SetStopProfittarget(bsgl,PointStop); SetStopTrailing(bstr,0,PointStop,1); SetStopInactivity(b3mi,b3bg,PointStop); } } if MarketPosition== -1 Then //저점돌파시 { if IsEntryName("s2") == true Then //직전 포지션 매수 { SetStopLoss(sbls,PointStop); SetStopProfittarget(sbgl,PointStop); SetStopTrailing(sbtr,0,PointStop,1); SetStopInactivity(s2mi,s2bg,PointStop); } Else if IsEntryName("s3") == true Then //직전 포지션 매도 { SetStopLoss(ssls,PointStop); SetStopProfittarget(ssgl,PointStop); SetStopTrailing(sstr,0,PointStop,1); SetStopInactivity(s3mi,s3bg,PointStop); } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-03-27 14:41:55

안녕하세요 예스스탁입니다. 강제청산은 한번 셋팅되면 해당 셋팅이 유지됩니다. 각 진입별로 모두 사용하는 것이 아니면 지정한 이름의 진입이 아니면 해제하는 내용이 들어가야 합니다. input : ls1(2.75),gl1(8.75),tr1(2.75); // 1차 b1진입 input : ls4(1.75),gl4(6.75),tr4(1.75); // 2차 s1진입 input : ls2(1),gl2(7.75),tr2(2.5); // 1차 s1진입 input : ls3(1.75),gl3(999999),tr3(1.75); // 2차 b1진입 input : bbls(1),bbgl(999999),bbtr(1.75),b2mi(999999),b2bg(999999); // 3차 "b2"진입 input : bsls(1.75),bsgl(999999),bstr(3.25),b3mi(999999),b3bg(999999);// 3차 "b3"진입 input : sbls(3),sbgl(999999),sbtr(3),s2mi(4.5),s2bg(1200); // 3차 "s2"진입 input : ssls(1.5),ssgl(1.25),sstr(2.25),s3mi(7),s3bg(2000); // 3차 "s3"진입 var : entry(0); if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 1 and IsEntryName("b1") == true Then { SetStopInactivity(0,0);#해제 //매수진입이 첫진입일때 if entry == 1 Then { SetStopLoss(ls1,PointStop); SetStopProfittarget(gl1,PointStop); SetStopTrailing(tr1,0,PointStop); } Else //매수진입이 두번째진입일때 { SetStopLoss(ls3,PointStop); SetStopProfittarget(gl3,PointStop); SetStopTrailing(tr3,0,PointStop); } } Else if MarketPosition == -1 and IsEntryName("s1") == true Then { SetStopInactivity(0,0);#해제 //매도진입이 첫진입일때 if entry == 1 Then { SetStopLoss(ls2,PointStop); SetStopProfittarget(gl2,PointStop); SetStopTrailing(tr2,0,PointStop); } Else //매도진입이 두번째진입일때 { SetStopLoss(ls4,PointStop); SetStopProfittarget(gl4,PointStop); SetStopTrailing(tr4,0,PointStop); } } if MarketPosition== 1 Then //고점돌파시 { if IsEntryName("b2") == true Then //직전 포지션 매수 { SetStopLoss(bbls,PointStop); SetStopProfittarget(bbgl,PointStop); SetStopTrailing(bbtr,0,PointStop,1); SetStopInactivity(b2mi,b2bg,PointStop); } Else if IsEntryName("b3") == true Then //직전 포지션 매도 { SetStopLoss(bsls,PointStop); SetStopProfittarget(bsgl,PointStop); SetStopTrailing(bstr,0,PointStop,1); SetStopInactivity(b3mi,b3bg,PointStop); } } if MarketPosition== -1 Then //저점돌파시 { if IsEntryName("s2") == true Then //직전 포지션 매수 { SetStopLoss(sbls,PointStop); SetStopProfittarget(sbgl,PointStop); SetStopTrailing(sbtr,0,PointStop,1); SetStopInactivity(s2mi,s2bg,PointStop); } Else if IsEntryName("s3") == true Then //직전 포지션 매도 { SetStopLoss(ssls,PointStop); SetStopProfittarget(ssgl,PointStop); SetStopTrailing(sstr,0,PointStop,1); SetStopInactivity(s3mi,s3bg,PointStop); } } 즐거운 하루되세요 > 목마와숙녀 님이 쓴 글입니다. > 제목 : 문의 > 아래 청산수식을 검토해주십시요. 문제점은 inactivity 청산에서 확인됩니다. (손절,추적스탑,익절은 구별이 힘든데 최소가격변화는 빈도가 적어서 문제를 발견했습니다) 청산수식 전체에 문제가 있을 거 같습니다. 첨부파일은 inactivity 청산내역입니다.(별첨1,2) inactivity 수식은 b1과 s1에는 없고 b2,b3와 s2,s3 수식에만 있는데 b1과 s1 청산결과에 나타납니다.(별첨1) s3를 시뮬레이션하면 값들이 나오는데 inactivity 청산결과는 없습니다.(별첨2) *진입내용 b1과 s1은 리버스 거래 b2는 고점돌파(직전 포지션 매수) b3는 고점돌파(직전 포지션 매도) s2는 저점돌파(직전 포지션 매수) s3는 저점돌파(직전 포지션 매도) *진입순서(b1,s1 신호가 모두 나온 후 고점이나 저점을 돌파할 때) b1-s1-b3 1차 매수 / 2차 매도 / 3차 고점돌파 b1-s1-s3 1차 매수 / 2차 매도 / 3차 저점돌파 s1-b1-b2 1차 매도 / 2차 매수 / 3차 고점돌파 s1-b1-s2 1차 매도 / 2차 매수 / 3차 저점돌파 항상 고맙습니다. ******************************************************************************* input : ls1(2.75),gl1(8.75),tr1(2.75); // 1차 b1진입 input : ls4(1.75),gl4(6.75),tr4(1.75); // 2차 s1진입 input : ls2(1),gl2(7.75),tr2(2.5); // 1차 s1진입 input : ls3(1.75),gl3(999999),tr3(1.75); // 2차 b1진입 input : bbls(1),bbgl(999999),bbtr(1.75),b2mi(999999),b2bg(999999); // 3차 "b2"진입 input : bsls(1.75),bsgl(999999),bstr(3.25),b3mi(999999),b3bg(999999);// 3차 "b3"진입 input : sbls(3),sbgl(999999),sbtr(3),s2mi(4.5),s2bg(1200); // 3차 "s2"진입 input : ssls(1.5),ssgl(1.25),sstr(2.25),s3mi(7),s3bg(2000); // 3차 "s3"진입 var : entry(0); if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 1 and IsEntryName("b1") == true Then { //매수진입이 첫진입일때 if entry == 1 Then { SetStopLoss(ls1,PointStop); SetStopProfittarget(gl1,PointStop); SetStopTrailing(tr1,0,PointStop); } Else //매수진입이 두번째진입일때 { SetStopLoss(ls3,PointStop); SetStopProfittarget(gl3,PointStop); SetStopTrailing(tr3,0,PointStop); } } Else if MarketPosition == -1 and IsEntryName("s1") == true Then { //매도진입이 첫진입일때 if entry == 1 Then { SetStopLoss(ls2,PointStop); SetStopProfittarget(gl2,PointStop); SetStopTrailing(tr2,0,PointStop); } Else //매도진입이 두번째진입일때 { SetStopLoss(ls4,PointStop); SetStopProfittarget(gl4,PointStop); SetStopTrailing(tr4,0,PointStop); } } if MarketPosition== 1 Then //고점돌파시 { if IsEntryName("b2") == true Then //직전 포지션 매수 { SetStopLoss(bbls,PointStop); SetStopProfittarget(bbgl,PointStop); SetStopTrailing(bbtr,0,PointStop,1); SetStopInactivity(b2mi,b2bg,PointStop); } Else if IsEntryName("b3") == true Then //직전 포지션 매도 { SetStopLoss(bsls,PointStop); SetStopProfittarget(bsgl,PointStop); SetStopTrailing(bstr,0,PointStop,1); SetStopInactivity(b3mi,b3bg,PointStop); } } if MarketPosition== -1 Then //저점돌파시 { if IsEntryName("s2") == true Then //직전 포지션 매수 { SetStopLoss(sbls,PointStop); SetStopProfittarget(sbgl,PointStop); SetStopTrailing(sbtr,0,PointStop,1); SetStopInactivity(s2mi,s2bg,PointStop); } Else if IsEntryName("s3") == true Then //직전 포지션 매도 { SetStopLoss(ssls,PointStop); SetStopProfittarget(ssgl,PointStop); SetStopTrailing(sstr,0,PointStop,1); SetStopInactivity(s3mi,s3bg,PointStop); } }