커뮤니티

고생 많으십니다.

프로필 이미지
노아
2024-02-14 16:03:03
567
글번호 176618
답변완료

첨부 이미지

안녕하세요:) 답변해주신 매매전략을 입력해봤는데 계획했던 진입 시점에 진입을 하지 않아서 문의드립니다:) 답변해주신 글 참고하실 수 있게 아래에 붙여 넣었습니다. 사진을 첨부하여 말씀드리겠습니다:) 예를 하나 들자면 2월13일 신성델타테크의 경우 당일 누적 거래대금 800억 이상, 역사적 신고가 119,500원을 돌파하였는데 진입 신호가 생기지 않아서요:) 왜 진입이 되지 않는지 혹시 알려주실 수 있으신가요? 가능하다면 문제가 해결될 수 있게 수식 개선을 도와주시면 정말 감사드리겠습니다. ------------------------------------------------------------------------------------ 안녕하세요 예스스탁입니다. input : 금액(2000000); var : HisH(0,Data2),cnt(0),YH6(0,Data2),trade(False),dm(0,Data1),entry(0); var : Rebuy(False,Data1),NegCnt(0,Data1); Array : YH[20](0,Data2); #역사적 신고가(참조데이터의 전체봉 중 최고가) if HisH == 0 or (HisH > 0 and Data2(H) > HisH) Then HisH = data2(H); #연간 최고가 계산 if data2(Bdate > Bdate[1]+1000) Then { For cnt = 19 DownTo 1 { YH[cnt] = YH[cnt-1]; } YH[0] = Data2(H); } if YH[0] > 0 and Data2(H) > YH[0] Then YH[0] = Data2(H); if Bdate != Bdate[1] Then { trade = true; entry = 0; dm = 0; } dm = dm + v; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if TotalTrades > TotalTrades[1] Then { if IsExitName("bl1",1) == true or IsExitName("bl2",1) == true Then trade = False; ReBuy = False; NegCnt = 0; } if Bdate == Bdate[1] Then { if h > DayHigh(0)[1] Then { rebuy = true; NegCnt = 0; } if rebuy == true and C < O Then NegCnt = NegCnt+1; } if MarketPosition == 0 and trade == true and sTime >= 91000 and sTime < 150000 and dm >= 80000000000 Then { #역사적 신고가+1틱이상이면 매수 Buy("b1",AtStop,HisH+PriceScale*1,Floor(금액/max(NextBarOpen,HisH+PriceScale*1))); if YH[5] > 0 and entry == 0 Then { #6년 최고가 계산 YH6 = 0; For cnt = 0 to 5 { if YH6 == 0 or (YH6 > 0 and YH[cnt] > YH6) Then YH6 = YH[cnt]; } #6년 최고가 +1틱이면 매수 if YH6 > 0 Then Buy("b2",AtStop,YH6+PriceScale*1,Floor(금액/max(NextBarOpen,YH6+PriceScale*1))); } if entry >= 1 and reBuy == true and NegCnt >= 3 Then { Buy("b3",AtStop,DayHigh+PriceScale*1,Floor(금액/max(NextBarOpen,DayHigh+PriceScale*1))); } } if MarketPosition == 1 Then { if IsEntryName("b1") == true Then var1 = HisH[BarsSinceEntry]; if IsEntryName("b2") == true Then var1 = YH6[BarsSinceEntry]; if IsEntryName("b3") == true Then var1 = dayhigh[BarsSinceEntry]; if CurrentContracts == MaxContracts Then ExitLong("bx1",AtLimit,var1*1.02,"",Floor(MaxContracts*0.5),1); Else ExitLong("bx2",AtLimit,var1*1.04); ExitLong("bl1",AtStop,var1*0.985); ExitLong("bl2",AtStop,EntryPrice*0.96); } 즐거운 하루되세요 > 노아 님이 쓴 글입니다. > 제목 : 시스템 개선 문의 > 안녕하세요. 최근에 시스템 작성 문의에 대해 답변을 받았었는데, 해당 매매전략을 개선하고 싶어 문의드리게 되었습니다^^ 기존 전략에서 2가지 개선하고 싶은 부분이 있습니다. 1) 참고로 해당 전략은 상승돌파매매 시스템이고, 진입조건을 개선하고 싶습니다. 종목의 역사적 신고가 및 6년 신고가 가격의 한틱 위를 돌파할 때 시장가로 진입하고 싶습니다. 또한 당일 재진입의 경우, 보유 비중이 전량 매도된 이후에만 재진입할 것 입니다. 재진입은 1분봉 기준, 당일 신고가 이후 음봉 3개 출현 이후에 신고가 재돌파시 신고가 가격의 한틱 위를 돌파할 때 시장가로 진입하고 싶습니다. 그리고 진입 후 손절을 하게 되면, 당일 진입 조건을 달성해도 재진입을 하지 않게 하고 싶습니다. 2) 그리고 당일 누적 거래대금이 800억 이상일 경우에만 매매를 하고 싶습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-02-14 16:56:37

안녕하세요 예스스탁입니다. 죄송합니다.당일누적거래대금이 거래량으로 잘못지정되어 있었습니다. 수정한 식입니다. input : 금액(2000000); var : HisH(0,Data2),cnt(0),YH6(0,Data2),trade(False),dm(0,Data1),entry(0); var : Rebuy(False,Data1),NegCnt(0,Data1); Array : YH[20](0,Data2); #역사적 신고가(참조데이터의 전체봉 중 최고가) if HisH == 0 or (HisH > 0 and Data2(H) > HisH) Then HisH = data2(H); #연간 최고가 계산 if data2(Bdate > Bdate[1]+1000) Then { For cnt = 19 DownTo 1 { YH[cnt] = YH[cnt-1]; } YH[0] = Data2(H); } if YH[0] > 0 and Data2(H) > YH[0] Then YH[0] = Data2(H); if Bdate != Bdate[1] Then { trade = true; entry = 0; dm = 0; } dm = dm + m; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if TotalTrades > TotalTrades[1] Then { if IsExitName("bl1",1) == true or IsExitName("bl2",1) == true Then trade = False; ReBuy = False; NegCnt = 0; } if Bdate == Bdate[1] Then { if h > DayHigh(0)[1] Then { rebuy = true; NegCnt = 0; } if rebuy == true and C < O Then NegCnt = NegCnt+1; } if MarketPosition == 0 and trade == true and sTime >= 91000 and sTime < 150000 and dm >= 80000000000 Then { #역사적 신고가+1틱이상이면 매수 if entry == 0 Then Buy("b1",AtStop,HisH+PriceScale*1,Floor(금액/max(NextBarOpen,HisH+PriceScale*1))); if YH[5] > 0 and entry == 0 Then { #6년 최고가 계산 YH6 = 0; For cnt = 0 to 5 { if YH6 == 0 or (YH6 > 0 and YH[cnt] > YH6) Then YH6 = YH[cnt]; } #6년 최고가 +1틱이면 매수 if YH6 > 0 Then Buy("b2",AtStop,YH6+PriceScale*1,Floor(금액/max(NextBarOpen,YH6+PriceScale*1))); } if entry >= 1 and reBuy == true and NegCnt >= 3 Then { Buy("b3",AtStop,DayHigh+PriceScale*1,Floor(금액/max(NextBarOpen,DayHigh+PriceScale*1))); } } if MarketPosition == 1 Then { if IsEntryName("b1") == true Then var1 = HisH[BarsSinceEntry]; if IsEntryName("b2") == true Then var1 = YH6[BarsSinceEntry]; if IsEntryName("b3") == true Then var1 = dayhigh[BarsSinceEntry]; if CurrentContracts == MaxContracts Then ExitLong("bx1",AtLimit,var1*1.02,"",Floor(MaxContracts*0.5),1); Else ExitLong("bx2",AtLimit,var1*1.04); ExitLong("bl1",AtStop,var1*0.985); ExitLong("bl2",AtStop,EntryPrice*0.96); } 즐거운 하루되세요 > 노아 님이 쓴 글입니다. > 제목 : 고생 많으십니다. > 안녕하세요:) 답변해주신 매매전략을 입력해봤는데 계획했던 진입 시점에 진입을 하지 않아서 문의드립니다:) 답변해주신 글 참고하실 수 있게 아래에 붙여 넣었습니다. 사진을 첨부하여 말씀드리겠습니다:) 예를 하나 들자면 2월13일 신성델타테크의 경우 당일 누적 거래대금 800억 이상, 역사적 신고가 119,500원을 돌파하였는데 진입 신호가 생기지 않아서요:) 왜 진입이 되지 않는지 혹시 알려주실 수 있으신가요? 가능하다면 문제가 해결될 수 있게 수식 개선을 도와주시면 정말 감사드리겠습니다. ------------------------------------------------------------------------------------ 안녕하세요 예스스탁입니다. input : 금액(2000000); var : HisH(0,Data2),cnt(0),YH6(0,Data2),trade(False),dm(0,Data1),entry(0); var : Rebuy(False,Data1),NegCnt(0,Data1); Array : YH[20](0,Data2); #역사적 신고가(참조데이터의 전체봉 중 최고가) if HisH == 0 or (HisH > 0 and Data2(H) > HisH) Then HisH = data2(H); #연간 최고가 계산 if data2(Bdate > Bdate[1]+1000) Then { For cnt = 19 DownTo 1 { YH[cnt] = YH[cnt-1]; } YH[0] = Data2(H); } if YH[0] > 0 and Data2(H) > YH[0] Then YH[0] = Data2(H); if Bdate != Bdate[1] Then { trade = true; entry = 0; dm = 0; } dm = dm + v; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if TotalTrades > TotalTrades[1] Then { if IsExitName("bl1",1) == true or IsExitName("bl2",1) == true Then trade = False; ReBuy = False; NegCnt = 0; } if Bdate == Bdate[1] Then { if h > DayHigh(0)[1] Then { rebuy = true; NegCnt = 0; } if rebuy == true and C < O Then NegCnt = NegCnt+1; } if MarketPosition == 0 and trade == true and sTime >= 91000 and sTime < 150000 and dm >= 80000000000 Then { #역사적 신고가+1틱이상이면 매수 Buy("b1",AtStop,HisH+PriceScale*1,Floor(금액/max(NextBarOpen,HisH+PriceScale*1))); if YH[5] > 0 and entry == 0 Then { #6년 최고가 계산 YH6 = 0; For cnt = 0 to 5 { if YH6 == 0 or (YH6 > 0 and YH[cnt] > YH6) Then YH6 = YH[cnt]; } #6년 최고가 +1틱이면 매수 if YH6 > 0 Then Buy("b2",AtStop,YH6+PriceScale*1,Floor(금액/max(NextBarOpen,YH6+PriceScale*1))); } if entry >= 1 and reBuy == true and NegCnt >= 3 Then { Buy("b3",AtStop,DayHigh+PriceScale*1,Floor(금액/max(NextBarOpen,DayHigh+PriceScale*1))); } } if MarketPosition == 1 Then { if IsEntryName("b1") == true Then var1 = HisH[BarsSinceEntry]; if IsEntryName("b2") == true Then var1 = YH6[BarsSinceEntry]; if IsEntryName("b3") == true Then var1 = dayhigh[BarsSinceEntry]; if CurrentContracts == MaxContracts Then ExitLong("bx1",AtLimit,var1*1.02,"",Floor(MaxContracts*0.5),1); Else ExitLong("bx2",AtLimit,var1*1.04); ExitLong("bl1",AtStop,var1*0.985); ExitLong("bl2",AtStop,EntryPrice*0.96); } 즐거운 하루되세요 > 노아 님이 쓴 글입니다. > 제목 : 시스템 개선 문의 > 안녕하세요. 최근에 시스템 작성 문의에 대해 답변을 받았었는데, 해당 매매전략을 개선하고 싶어 문의드리게 되었습니다^^ 기존 전략에서 2가지 개선하고 싶은 부분이 있습니다. 1) 참고로 해당 전략은 상승돌파매매 시스템이고, 진입조건을 개선하고 싶습니다. 종목의 역사적 신고가 및 6년 신고가 가격의 한틱 위를 돌파할 때 시장가로 진입하고 싶습니다. 또한 당일 재진입의 경우, 보유 비중이 전량 매도된 이후에만 재진입할 것 입니다. 재진입은 1분봉 기준, 당일 신고가 이후 음봉 3개 출현 이후에 신고가 재돌파시 신고가 가격의 한틱 위를 돌파할 때 시장가로 진입하고 싶습니다. 그리고 진입 후 손절을 하게 되면, 당일 진입 조건을 달성해도 재진입을 하지 않게 하고 싶습니다. 2) 그리고 당일 누적 거래대금이 800억 이상일 경우에만 매매를 하고 싶습니다.