커뮤니티

시스템식 문의 드립니다.

프로필 이미지
맴맴잉
2021-11-22 23:07:09
760
글번호 153794
답변완료
기존의 사용하고 있던 매수관련 시스템식을 업데이트를 요청드립니다. 아래의 시스템식은 타점1~5을 적어놓으면 조건에 해당되는 타점에서 매수하고 청산조건에 따라 청산되는 수식입니다. 아래의 식에서 추가하고 싶은 조건은 시스템식 조건에 따라 타점이 정해지고, 당일에 대해서만 해당 타점x1.005 의 타점이 5% 이상 상승했을경우 타점이 아래의 타점으로 변경되는 식을 구현하고자 합니다. 이렇게 글로만 적으면 이해가 어려울수 있으니, 예를 들자면 아래와 같이 타점을 5000,4500,4000,3500,3000 을 외부 변수로 기입하였고, 조건에 해당되는 타점은 4500원이 되었습니다. 그런데 4500 x 1.005 = 4520원에서 반등이 나와 5%상승 한 4740원까지 상승했다면 타점은 4500원이 아닌 4000원으로 변경 되어야 합니다. 해당 반등은 당일에 해당합니다. 전일이나 전전일에 반등이 나온건 상관 없습니다. 이 같이 구현을 하고 싶은데, 어려움이 있어 이렇게 요청드립니다. 항상 감사합니다. --------------------------------------------------------------------- input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액(500000),익절(3),손절(4); input : Xdate1(2),Xtime1(110000); var : entry(0),HH(0),H1(0),H2(0),H3(0),H4(0),H5(0),LL(0),RR(0); if Bdate != Bdate[1] Then { entry = 0; #5개의 타점중 시가보다 작은것 중에 젤 큰값 계산 HH = 0; H1 = 0; H2 = 0; H3 = 0; H4 = 0; H5 = 0; if 타점1 < DayOpen*0.99 and 타점1 > HH Then { HH = 타점1; H1 = 타점2; H2 = 타점3; H3 = 타점4; H4 = 타점5; } if 타점2 < DayOpen*0.99 and 타점2 > HH Then { HH = 타점2; H1 = 타점3; H2 = 타점4; H3 = 타점5; } if 타점3 < DayOpen*0.99 and 타점3 > HH Then { HH = 타점3; H1 = 타점4; H2 = 타점5; } if 타점4 < DayOpen*0.99 and 타점4 > HH Then { HH = 타점4; H1 = 타점5; } if 타점5 < DayOpen*0.99 and 타점5 > HH Then { HH = 타점5; } } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; #----------------------------------------------------------------------------------------------- if MarketPosition == 0 and sTime < 150000 and entry == 0 Then { Buy("타점1매수",AtLimit,HH,Floor(투자금액/min(NextBarOpen,HH))); } if MarketPosition == 0 and entry == 1 and sTime < 150000 and LatestExitName(1) == "익절" and H1 > 0 Then { Buy("타점2매수",AtLimit,H1,Floor(투자금액/min(NextBarOpen,H1))); } if MarketPosition == 0 and entry == 2 and sTime < 150000 and LatestExitName(1) == "익절" and H2 > 0 Then { Buy("타점3매수",AtLimit,H2,Floor(투자금액/min(NextBarOpen,H2))); } if MarketPosition == 0 and entry == 3 and sTime < 150000 and LatestExitName(1) == "익절" and H3 > 0 Then { Buy("타점4매수",AtLimit,H3,Floor(투자금액/min(NextBarOpen,H3))); } if MarketPosition == 0 and entry == 4 and sTime < 150000 and LatestExitName(1) == "익절" and H4 > 0 Then { Buy("타점5매수",AtLimit,H4,Floor(투자금액/min(NextBarOpen,H4))); } #----------------------------------------------------------------------------------------------- if MarketPosition == 1 Then { if LL == 0 then LL = L; Else { if L < LL then LL = L; } RR = (LL-EntryPrice)/EntryPrice*100; ExitLong("익절",AtLimit,EntryPrice*(1+(익절+RR)/100)); } Else LL = 0; SetStopLoss(손절,PercentStop);
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2021-11-23 10:15:01

안녕하세요 예스스탁입니다. input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액(500000),익절(3),손절(4); input : Xdate1(2),Xtime1(110000); var : entry(0),HH(0),H1(0),H2(0),H3(0),H4(0),H5(0),LL(0),RR(0); if Bdate != Bdate[1] Then { entry = 0; #5개의 타점중 시가보다 작은것 중에 젤 큰값 계산 HH = 0; H1 = 0; H2 = 0; H3 = 0; H4 = 0; H5 = 0; Condition1 = False; if 타점1 < DayOpen*0.99 and 타점1 > HH Then { HH = 타점1; H1 = 타점2; H2 = 타점3; H3 = 타점4; H4 = 타점5; } if 타점2 < DayOpen*0.99 and 타점2 > HH Then { HH = 타점2; H1 = 타점3; H2 = 타점4; H3 = 타점5; } if 타점3 < DayOpen*0.99 and 타점3 > HH Then { HH = 타점3; H1 = 타점4; H2 = 타점5; } if 타점4 < DayOpen*0.99 and 타점4 > HH Then { HH = 타점4; H1 = 타점5; } if 타점5 < DayOpen*0.99 and 타점5 > HH Then { HH = 타점5; } } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if Condition1 == False and HH > 0 and DayLow > HH*1.005 and H >= HH*1.05 Then { Condition1 = true; HH = H1; H1 = H2; H2 = H3; H3 = H4; H4 = H5; } #----------------------------------------------------------------------------------------------- if MarketPosition == 0 and sTime < 150000 and entry == 0 and HH > 0 Then { Buy("타점1매수",AtLimit,HH,Floor(투자금액/min(NextBarOpen,HH))); } if MarketPosition == 0 and entry == 1 and sTime < 150000 and LatestExitName(1) == "익절" and H1 > 0 Then { Buy("타점2매수",AtLimit,H1,Floor(투자금액/min(NextBarOpen,H1))); } if MarketPosition == 0 and entry == 2 and sTime < 150000 and LatestExitName(1) == "익절" and H2 > 0 Then { Buy("타점3매수",AtLimit,H2,Floor(투자금액/min(NextBarOpen,H2))); } if MarketPosition == 0 and entry == 3 and sTime < 150000 and LatestExitName(1) == "익절" and H3 > 0 Then { Buy("타점4매수",AtLimit,H3,Floor(투자금액/min(NextBarOpen,H3))); } if MarketPosition == 0 and entry == 4 and sTime < 150000 and LatestExitName(1) == "익절" and H4 > 0 Then { Buy("타점5매수",AtLimit,H4,Floor(투자금액/min(NextBarOpen,H4))); } #----------------------------------------------------------------------------------------------- if MarketPosition == 1 Then { if LL == 0 then LL = L; Else { if L < LL then LL = L; } RR = (LL-EntryPrice)/EntryPrice*100; ExitLong("익절",AtLimit,EntryPrice*(1+(익절+RR)/100)); } Else LL = 0; SetStopLoss(손절,PercentStop); 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 시스템식 문의 드립니다. > 기존의 사용하고 있던 매수관련 시스템식을 업데이트를 요청드립니다. 아래의 시스템식은 타점1~5을 적어놓으면 조건에 해당되는 타점에서 매수하고 청산조건에 따라 청산되는 수식입니다. 아래의 식에서 추가하고 싶은 조건은 시스템식 조건에 따라 타점이 정해지고, 당일에 대해서만 해당 타점x1.005 의 타점이 5% 이상 상승했을경우 타점이 아래의 타점으로 변경되는 식을 구현하고자 합니다. 이렇게 글로만 적으면 이해가 어려울수 있으니, 예를 들자면 아래와 같이 타점을 5000,4500,4000,3500,3000 을 외부 변수로 기입하였고, 조건에 해당되는 타점은 4500원이 되었습니다. 그런데 4500 x 1.005 = 4520원에서 반등이 나와 5%상승 한 4740원까지 상승했다면 타점은 4500원이 아닌 4000원으로 변경 되어야 합니다. 해당 반등은 당일에 해당합니다. 전일이나 전전일에 반등이 나온건 상관 없습니다. 이 같이 구현을 하고 싶은데, 어려움이 있어 이렇게 요청드립니다. 항상 감사합니다. --------------------------------------------------------------------- input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액(500000),익절(3),손절(4); input : Xdate1(2),Xtime1(110000); var : entry(0),HH(0),H1(0),H2(0),H3(0),H4(0),H5(0),LL(0),RR(0); if Bdate != Bdate[1] Then { entry = 0; #5개의 타점중 시가보다 작은것 중에 젤 큰값 계산 HH = 0; H1 = 0; H2 = 0; H3 = 0; H4 = 0; H5 = 0; if 타점1 < DayOpen*0.99 and 타점1 > HH Then { HH = 타점1; H1 = 타점2; H2 = 타점3; H3 = 타점4; H4 = 타점5; } if 타점2 < DayOpen*0.99 and 타점2 > HH Then { HH = 타점2; H1 = 타점3; H2 = 타점4; H3 = 타점5; } if 타점3 < DayOpen*0.99 and 타점3 > HH Then { HH = 타점3; H1 = 타점4; H2 = 타점5; } if 타점4 < DayOpen*0.99 and 타점4 > HH Then { HH = 타점4; H1 = 타점5; } if 타점5 < DayOpen*0.99 and 타점5 > HH Then { HH = 타점5; } } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; #----------------------------------------------------------------------------------------------- if MarketPosition == 0 and sTime < 150000 and entry == 0 Then { Buy("타점1매수",AtLimit,HH,Floor(투자금액/min(NextBarOpen,HH))); } if MarketPosition == 0 and entry == 1 and sTime < 150000 and LatestExitName(1) == "익절" and H1 > 0 Then { Buy("타점2매수",AtLimit,H1,Floor(투자금액/min(NextBarOpen,H1))); } if MarketPosition == 0 and entry == 2 and sTime < 150000 and LatestExitName(1) == "익절" and H2 > 0 Then { Buy("타점3매수",AtLimit,H2,Floor(투자금액/min(NextBarOpen,H2))); } if MarketPosition == 0 and entry == 3 and sTime < 150000 and LatestExitName(1) == "익절" and H3 > 0 Then { Buy("타점4매수",AtLimit,H3,Floor(투자금액/min(NextBarOpen,H3))); } if MarketPosition == 0 and entry == 4 and sTime < 150000 and LatestExitName(1) == "익절" and H4 > 0 Then { Buy("타점5매수",AtLimit,H4,Floor(투자금액/min(NextBarOpen,H4))); } #----------------------------------------------------------------------------------------------- if MarketPosition == 1 Then { if LL == 0 then LL = L; Else { if L < LL then LL = L; } RR = (LL-EntryPrice)/EntryPrice*100; ExitLong("익절",AtLimit,EntryPrice*(1+(익절+RR)/100)); } Else LL = 0; SetStopLoss(손절,PercentStop);
프로필 이미지

맴맴잉

2021-11-23 11:27:10

작성해주신 시스템식 감사드립니다. 그런데 안맞는 부분이 있어 재요청드립니다. 작성해주셨던 수식중에 if Condition1 == False and HH > 0 and DayLow > HH*1.005 and H >= HH*1.05 Then { Condition1 = true; HH = H1; H1 = H2; H2 = H3; H3 = H4; H4 = H5; } 이부분을 추가해주셨는데 아마 저 daylow가 제가 생각하는 저점과 상이 한것 같습니다. 위의 그림으로 설명 하자면 타점 이전에 타점 * 1.005 지점에서 반등이 나왔기 때문에 다음 타점으로 이동 되어야 하는데.. 해당식으로 적용하면 기존 타점으로 똑같이 매수가 진행되는걸 볼수 있습니다. 다시 한번 확인 부탁드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템식 문의 드립니다. > 안녕하세요 예스스탁입니다. input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액(500000),익절(3),손절(4); input : Xdate1(2),Xtime1(110000); var : entry(0),HH(0),H1(0),H2(0),H3(0),H4(0),H5(0),LL(0),RR(0); if Bdate != Bdate[1] Then { entry = 0; #5개의 타점중 시가보다 작은것 중에 젤 큰값 계산 HH = 0; H1 = 0; H2 = 0; H3 = 0; H4 = 0; H5 = 0; Condition1 = False; if 타점1 < DayOpen*0.99 and 타점1 > HH Then { HH = 타점1; H1 = 타점2; H2 = 타점3; H3 = 타점4; H4 = 타점5; } if 타점2 < DayOpen*0.99 and 타점2 > HH Then { HH = 타점2; H1 = 타점3; H2 = 타점4; H3 = 타점5; } if 타점3 < DayOpen*0.99 and 타점3 > HH Then { HH = 타점3; H1 = 타점4; H2 = 타점5; } if 타점4 < DayOpen*0.99 and 타점4 > HH Then { HH = 타점4; H1 = 타점5; } if 타점5 < DayOpen*0.99 and 타점5 > HH Then { HH = 타점5; } } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if Condition1 == False and HH > 0 and DayLow > HH*1.005 and H >= HH*1.05 Then { Condition1 = true; HH = H1; H1 = H2; H2 = H3; H3 = H4; H4 = H5; } #----------------------------------------------------------------------------------------------- if MarketPosition == 0 and sTime < 150000 and entry == 0 and HH > 0 Then { Buy("타점1매수",AtLimit,HH,Floor(투자금액/min(NextBarOpen,HH))); } if MarketPosition == 0 and entry == 1 and sTime < 150000 and LatestExitName(1) == "익절" and H1 > 0 Then { Buy("타점2매수",AtLimit,H1,Floor(투자금액/min(NextBarOpen,H1))); } if MarketPosition == 0 and entry == 2 and sTime < 150000 and LatestExitName(1) == "익절" and H2 > 0 Then { Buy("타점3매수",AtLimit,H2,Floor(투자금액/min(NextBarOpen,H2))); } if MarketPosition == 0 and entry == 3 and sTime < 150000 and LatestExitName(1) == "익절" and H3 > 0 Then { Buy("타점4매수",AtLimit,H3,Floor(투자금액/min(NextBarOpen,H3))); } if MarketPosition == 0 and entry == 4 and sTime < 150000 and LatestExitName(1) == "익절" and H4 > 0 Then { Buy("타점5매수",AtLimit,H4,Floor(투자금액/min(NextBarOpen,H4))); } #----------------------------------------------------------------------------------------------- if MarketPosition == 1 Then { if LL == 0 then LL = L; Else { if L < LL then LL = L; } RR = (LL-EntryPrice)/EntryPrice*100; ExitLong("익절",AtLimit,EntryPrice*(1+(익절+RR)/100)); } Else LL = 0; SetStopLoss(손절,PercentStop); 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 시스템식 문의 드립니다. > 기존의 사용하고 있던 매수관련 시스템식을 업데이트를 요청드립니다. 아래의 시스템식은 타점1~5을 적어놓으면 조건에 해당되는 타점에서 매수하고 청산조건에 따라 청산되는 수식입니다. 아래의 식에서 추가하고 싶은 조건은 시스템식 조건에 따라 타점이 정해지고, 당일에 대해서만 해당 타점x1.005 의 타점이 5% 이상 상승했을경우 타점이 아래의 타점으로 변경되는 식을 구현하고자 합니다. 이렇게 글로만 적으면 이해가 어려울수 있으니, 예를 들자면 아래와 같이 타점을 5000,4500,4000,3500,3000 을 외부 변수로 기입하였고, 조건에 해당되는 타점은 4500원이 되었습니다. 그런데 4500 x 1.005 = 4520원에서 반등이 나와 5%상승 한 4740원까지 상승했다면 타점은 4500원이 아닌 4000원으로 변경 되어야 합니다. 해당 반등은 당일에 해당합니다. 전일이나 전전일에 반등이 나온건 상관 없습니다. 이 같이 구현을 하고 싶은데, 어려움이 있어 이렇게 요청드립니다. 항상 감사합니다. --------------------------------------------------------------------- input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액(500000),익절(3),손절(4); input : Xdate1(2),Xtime1(110000); var : entry(0),HH(0),H1(0),H2(0),H3(0),H4(0),H5(0),LL(0),RR(0); if Bdate != Bdate[1] Then { entry = 0; #5개의 타점중 시가보다 작은것 중에 젤 큰값 계산 HH = 0; H1 = 0; H2 = 0; H3 = 0; H4 = 0; H5 = 0; if 타점1 < DayOpen*0.99 and 타점1 > HH Then { HH = 타점1; H1 = 타점2; H2 = 타점3; H3 = 타점4; H4 = 타점5; } if 타점2 < DayOpen*0.99 and 타점2 > HH Then { HH = 타점2; H1 = 타점3; H2 = 타점4; H3 = 타점5; } if 타점3 < DayOpen*0.99 and 타점3 > HH Then { HH = 타점3; H1 = 타점4; H2 = 타점5; } if 타점4 < DayOpen*0.99 and 타점4 > HH Then { HH = 타점4; H1 = 타점5; } if 타점5 < DayOpen*0.99 and 타점5 > HH Then { HH = 타점5; } } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; #----------------------------------------------------------------------------------------------- if MarketPosition == 0 and sTime < 150000 and entry == 0 Then { Buy("타점1매수",AtLimit,HH,Floor(투자금액/min(NextBarOpen,HH))); } if MarketPosition == 0 and entry == 1 and sTime < 150000 and LatestExitName(1) == "익절" and H1 > 0 Then { Buy("타점2매수",AtLimit,H1,Floor(투자금액/min(NextBarOpen,H1))); } if MarketPosition == 0 and entry == 2 and sTime < 150000 and LatestExitName(1) == "익절" and H2 > 0 Then { Buy("타점3매수",AtLimit,H2,Floor(투자금액/min(NextBarOpen,H2))); } if MarketPosition == 0 and entry == 3 and sTime < 150000 and LatestExitName(1) == "익절" and H3 > 0 Then { Buy("타점4매수",AtLimit,H3,Floor(투자금액/min(NextBarOpen,H3))); } if MarketPosition == 0 and entry == 4 and sTime < 150000 and LatestExitName(1) == "익절" and H4 > 0 Then { Buy("타점5매수",AtLimit,H4,Floor(투자금액/min(NextBarOpen,H4))); } #----------------------------------------------------------------------------------------------- if MarketPosition == 1 Then { if LL == 0 then LL = L; Else { if L < LL then LL = L; } RR = (LL-EntryPrice)/EntryPrice*100; ExitLong("익절",AtLimit,EntryPrice*(1+(익절+RR)/100)); } Else LL = 0; SetStopLoss(손절,PercentStop);
프로필 이미지

예스스탁 예스스탁 답변

2021-11-23 13:12:49

> 맴맴잉 님이 쓴 글입니다. > 제목 : Re : Re : 시스템식 문의 드립니다. > 작성해주신 시스템식 감사드립니다. 그런데 안맞는 부분이 있어 재요청드립니다. 작성해주셨던 수식중에 if Condition1 == False and HH > 0 and DayLow > HH*1.005 and H >= HH*1.05 Then { Condition1 = true; HH = H1; H1 = H2; H2 = H3; H3 = H4; H4 = H5; } 이부분을 추가해주셨는데 아마 저 daylow가 제가 생각하는 저점과 상이 한것 같습니다. 위의 그림으로 설명 하자면 타점 이전에 타점 * 1.005 지점에서 반등이 나왔기 때문에 다음 타점으로 이동 되어야 하는데.. 해당식으로 적용하면 기존 타점으로 똑같이 매수가 진행되는걸 볼수 있습니다. 다시 한번 확인 부탁드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템식 문의 드립니다. > 안녕하세요 예스스탁입니다. input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액(500000),익절(3),손절(4); input : Xdate1(2),Xtime1(110000); var : entry(0),HH(0),H1(0),H2(0),H3(0),H4(0),H5(0),LL(0),RR(0); if Bdate != Bdate[1] Then { entry = 0; #5개의 타점중 시가보다 작은것 중에 젤 큰값 계산 HH = 0; H1 = 0; H2 = 0; H3 = 0; H4 = 0; H5 = 0; Condition1 = False; if 타점1 < DayOpen*0.99 and 타점1 > HH Then { HH = 타점1; H1 = 타점2; H2 = 타점3; H3 = 타점4; H4 = 타점5; } if 타점2 < DayOpen*0.99 and 타점2 > HH Then { HH = 타점2; H1 = 타점3; H2 = 타점4; H3 = 타점5; } if 타점3 < DayOpen*0.99 and 타점3 > HH Then { HH = 타점3; H1 = 타점4; H2 = 타점5; } if 타점4 < DayOpen*0.99 and 타점4 > HH Then { HH = 타점4; H1 = 타점5; } if 타점5 < DayOpen*0.99 and 타점5 > HH Then { HH = 타점5; } } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if Condition1 == False and HH > 0 and DayLow > HH*1.005 and H >= HH*1.05 Then { Condition1 = true; HH = H1; H1 = H2; H2 = H3; H3 = H4; H4 = H5; } #----------------------------------------------------------------------------------------------- if MarketPosition == 0 and sTime < 150000 and entry == 0 and HH > 0 Then { Buy("타점1매수",AtLimit,HH,Floor(투자금액/min(NextBarOpen,HH))); } if MarketPosition == 0 and entry == 1 and sTime < 150000 and LatestExitName(1) == "익절" and H1 > 0 Then { Buy("타점2매수",AtLimit,H1,Floor(투자금액/min(NextBarOpen,H1))); } if MarketPosition == 0 and entry == 2 and sTime < 150000 and LatestExitName(1) == "익절" and H2 > 0 Then { Buy("타점3매수",AtLimit,H2,Floor(투자금액/min(NextBarOpen,H2))); } if MarketPosition == 0 and entry == 3 and sTime < 150000 and LatestExitName(1) == "익절" and H3 > 0 Then { Buy("타점4매수",AtLimit,H3,Floor(투자금액/min(NextBarOpen,H3))); } if MarketPosition == 0 and entry == 4 and sTime < 150000 and LatestExitName(1) == "익절" and H4 > 0 Then { Buy("타점5매수",AtLimit,H4,Floor(투자금액/min(NextBarOpen,H4))); } #----------------------------------------------------------------------------------------------- if MarketPosition == 1 Then { if LL == 0 then LL = L; Else { if L < LL then LL = L; } RR = (LL-EntryPrice)/EntryPrice*100; ExitLong("익절",AtLimit,EntryPrice*(1+(익절+RR)/100)); } Else LL = 0; SetStopLoss(손절,PercentStop); 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 시스템식 문의 드립니다. > 기존의 사용하고 있던 매수관련 시스템식을 업데이트를 요청드립니다. 아래의 시스템식은 타점1~5을 적어놓으면 조건에 해당되는 타점에서 매수하고 청산조건에 따라 청산되는 수식입니다. 아래의 식에서 추가하고 싶은 조건은 시스템식 조건에 따라 타점이 정해지고, 당일에 대해서만 해당 타점x1.005 의 타점이 5% 이상 상승했을경우 타점이 아래의 타점으로 변경되는 식을 구현하고자 합니다. 이렇게 글로만 적으면 이해가 어려울수 있으니, 예를 들자면 아래와 같이 타점을 5000,4500,4000,3500,3000 을 외부 변수로 기입하였고, 조건에 해당되는 타점은 4500원이 되었습니다. 그런데 4500 x 1.005 = 4520원에서 반등이 나와 5%상승 한 4740원까지 상승했다면 타점은 4500원이 아닌 4000원으로 변경 되어야 합니다. 해당 반등은 당일에 해당합니다. 전일이나 전전일에 반등이 나온건 상관 없습니다. 이 같이 구현을 하고 싶은데, 어려움이 있어 이렇게 요청드립니다. 항상 감사합니다. --------------------------------------------------------------------- input : 타점1(5000),타점2(4500),타점3(4000),타점4(3500),타점5(3000); input : 투자금액(500000),익절(3),손절(4); input : Xdate1(2),Xtime1(110000); var : entry(0),HH(0),H1(0),H2(0),H3(0),H4(0),H5(0),LL(0),RR(0); if Bdate != Bdate[1] Then { entry = 0; #5개의 타점중 시가보다 작은것 중에 젤 큰값 계산 HH = 0; H1 = 0; H2 = 0; H3 = 0; H4 = 0; H5 = 0; if 타점1 < DayOpen*0.99 and 타점1 > HH Then { HH = 타점1; H1 = 타점2; H2 = 타점3; H3 = 타점4; H4 = 타점5; } if 타점2 < DayOpen*0.99 and 타점2 > HH Then { HH = 타점2; H1 = 타점3; H2 = 타점4; H3 = 타점5; } if 타점3 < DayOpen*0.99 and 타점3 > HH Then { HH = 타점3; H1 = 타점4; H2 = 타점5; } if 타점4 < DayOpen*0.99 and 타점4 > HH Then { HH = 타점4; H1 = 타점5; } if 타점5 < DayOpen*0.99 and 타점5 > HH Then { HH = 타점5; } } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; #----------------------------------------------------------------------------------------------- if MarketPosition == 0 and sTime < 150000 and entry == 0 Then { Buy("타점1매수",AtLimit,HH,Floor(투자금액/min(NextBarOpen,HH))); } if MarketPosition == 0 and entry == 1 and sTime < 150000 and LatestExitName(1) == "익절" and H1 > 0 Then { Buy("타점2매수",AtLimit,H1,Floor(투자금액/min(NextBarOpen,H1))); } if MarketPosition == 0 and entry == 2 and sTime < 150000 and LatestExitName(1) == "익절" and H2 > 0 Then { Buy("타점3매수",AtLimit,H2,Floor(투자금액/min(NextBarOpen,H2))); } if MarketPosition == 0 and entry == 3 and sTime < 150000 and LatestExitName(1) == "익절" and H3 > 0 Then { Buy("타점4매수",AtLimit,H3,Floor(투자금액/min(NextBarOpen,H3))); } if MarketPosition == 0 and entry == 4 and sTime < 150000 and LatestExitName(1) == "익절" and H4 > 0 Then { Buy("타점5매수",AtLimit,H4,Floor(투자금액/min(NextBarOpen,H4))); } #----------------------------------------------------------------------------------------------- if MarketPosition == 1 Then { if LL == 0 then LL = L; Else { if L < LL then LL = L; } RR = (LL-EntryPrice)/EntryPrice*100; ExitLong("익절",AtLimit,EntryPrice*(1+(익절+RR)/100)); } Else LL = 0; SetStopLoss(손절,PercentStop);