커뮤니티

문의드립니다:)

프로필 이미지
노아
2024-02-15 09:50:00
1104
글번호 176642
답변완료

첨부 이미지

안녕하세요:) 답변해주신 시스템에 대해 추가하고 싶은 부분이 있어 문의드립니다. 역사적 신고가나 6년 신고가 가격을 돌파시 진입을 하게 되는 전략인데요:) 제주반도체가 1월25일 진입 조건에 해당하긴 했는데 신고가 갱신이 안된 것인지 전일 신고가 돌파시 진입을 하게 되어서요 해당 부분이 개선될 수 있는지 문의드립니다 ----------------------------------------------------------------- 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); }
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2024-02-15 16:52:59

안녕하세요 예스스탁입니다. 올려주신 내용은 별도로 어느부분을 수정해 드려야 할지 모르겠습니다. 역사적신고가나 6년신고가는 참조데이터인 일봉을 이용해서 계산하며 모두 전일기준으로 최고가를 계산하고 오늘 해당 값들보다 1틱이상 크면(새로운 신고가 갱신) 즉시 매수입니다. 다만 9시10분이후 거래대금 일정이상이 있어 신호는 해당 시간과 거래대금조건 충족이후에 발생하게 됩니다. 아래 지표식 적용하셔서 역사적신고가와 6년신고가를 지표로 확인하시기 바랍니다. 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 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]; } } Plot1(HisH); Plot2(YH6); 즐거운 하루되세요 > 노아 님이 쓴 글입니다. > 제목 : 문의드립니다:) > 안녕하세요:) 답변해주신 시스템에 대해 추가하고 싶은 부분이 있어 문의드립니다. 역사적 신고가나 6년 신고가 가격을 돌파시 진입을 하게 되는 전략인데요:) 제주반도체가 1월25일 진입 조건에 해당하긴 했는데 신고가 갱신이 안된 것인지 전일 신고가 돌파시 진입을 하게 되어서요 해당 부분이 개선될 수 있는지 문의드립니다 ----------------------------------------------------------------- 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); }
프로필 이미지

노아

2024-02-15 17:30:35

답변해주셔서 감사합니다. 역사적 신고가의 기준을 수정하고 싶습니다:) 당일 9:10이전에라도 신고가를 새롭게 달성했다면 전일까지의 역사적 신고가가 아닌 당일을 기준으로 신고가 기준을 수정하고 싶습니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의드립니다:) > 안녕하세요 예스스탁입니다. 올려주신 내용은 별도로 어느부분을 수정해 드려야 할지 모르겠습니다. 역사적신고가나 6년신고가는 참조데이터인 일봉을 이용해서 계산하며 모두 전일기준으로 최고가를 계산하고 오늘 해당 값들보다 1틱이상 크면(새로운 신고가 갱신) 즉시 매수입니다. 다만 9시10분이후 거래대금 일정이상이 있어 신호는 해당 시간과 거래대금조건 충족이후에 발생하게 됩니다. 아래 지표식 적용하셔서 역사적신고가와 6년신고가를 지표로 확인하시기 바랍니다. 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 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]; } } Plot1(HisH); Plot2(YH6); 즐거운 하루되세요 > 노아 님이 쓴 글입니다. > 제목 : 문의드립니다:) > 안녕하세요:) 답변해주신 시스템에 대해 추가하고 싶은 부분이 있어 문의드립니다. 역사적 신고가나 6년 신고가 가격을 돌파시 진입을 하게 되는 전략인데요:) 제주반도체가 1월25일 진입 조건에 해당하긴 했는데 신고가 갱신이 안된 것인지 전일 신고가 돌파시 진입을 하게 되어서요 해당 부분이 개선될 수 있는지 문의드립니다 ----------------------------------------------------------------- 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); }
프로필 이미지

예스스탁 예스스탁 답변

2024-02-16 10:29:34

안녕하세요 예스스탁입니다. 아래 수식에는 시간조건만 수정해 드립니다. 수식 내용에 보시면 dm >= 80000000000 와 같이 거래대금이 800억이상인 조건이 있습니다. 거래대금 조건은 삭제해야 할지 알수 없어 그대로 두었습니다. 9시 첫봉에 거래대금 800억 조건을 충족하기 어려우므로 해당 부분은 사용자분이 판단하셔서 삭제하시기 바랍니다. 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 < 150000 or NextBarSdate!= sDate) 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); } 즐거운 하루되세요 > 노아 님이 쓴 글입니다. > 제목 : Re : Re : 문의드립니다:) > 답변해주셔서 감사합니다. 역사적 신고가의 기준을 수정하고 싶습니다:) 당일 9:10이전에라도 신고가를 새롭게 달성했다면 전일까지의 역사적 신고가가 아닌 당일을 기준으로 신고가 기준을 수정하고 싶습니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의드립니다:) > 안녕하세요 예스스탁입니다. 올려주신 내용은 별도로 어느부분을 수정해 드려야 할지 모르겠습니다. 역사적신고가나 6년신고가는 참조데이터인 일봉을 이용해서 계산하며 모두 전일기준으로 최고가를 계산하고 오늘 해당 값들보다 1틱이상 크면(새로운 신고가 갱신) 즉시 매수입니다. 다만 9시10분이후 거래대금 일정이상이 있어 신호는 해당 시간과 거래대금조건 충족이후에 발생하게 됩니다. 아래 지표식 적용하셔서 역사적신고가와 6년신고가를 지표로 확인하시기 바랍니다. 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 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]; } } Plot1(HisH); Plot2(YH6); 즐거운 하루되세요 > 노아 님이 쓴 글입니다. > 제목 : 문의드립니다:) > 안녕하세요:) 답변해주신 시스템에 대해 추가하고 싶은 부분이 있어 문의드립니다. 역사적 신고가나 6년 신고가 가격을 돌파시 진입을 하게 되는 전략인데요:) 제주반도체가 1월25일 진입 조건에 해당하긴 했는데 신고가 갱신이 안된 것인지 전일 신고가 돌파시 진입을 하게 되어서요 해당 부분이 개선될 수 있는지 문의드립니다 ----------------------------------------------------------------- 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); }