커뮤니티

수식작성 부탁드립니다.

프로필 이미지
중박주식
2024-11-24 19:08:35
478
글번호 185591
답변완료
24시간 거래되는 자산입니다. 30분 사용예정이고, 수식 구현에 필요시 data2에 일봉 같은걸 넣는 것으로 작성해주셔도 됩니다. [전략 1] 1. 매수 조건 - 매수 가능 시간: 04~12시 사이에서만 매수 가능 - 매수 조건: 전일 20시부터 금일 04시까지의 최고가 대비 1% 이상 하락하면, 그 즉시 매로 매수 - 피라미딩 조건: 그 이후에는 30분 봉이 완성될때마다 피라미딩으로 매수를 진입하는데, 반드시 최초 매수가 보다 가격이 낮고, 전봉의 종가보다 가격이 낮게 종가가 형성될때만 추가로 매수 진입을 해야함 (이 경우에도 매수 가능 시간 조건은 여전히 지켜야 함) 2. 매수 청산 조건 - 목표가 청산: 최초 매수 진입은 0.5% 수익시 or 04-12시의 최저가 대비 1프로 상승시 즉시 청산 피라미딩으로 쌓인 물량은 계속 0.1%p씩 가산하여 청산 목표를 상향함 즉, 최초 진입은 0.5 or 1, 다음 진입은 0.6 or 1.1... - 시간 청산: 목표청산이 이루어지지 않을 경우에는 매수당일 자정에 무조건 청산함 [전략 2] 1. 매수 조건 - 매수 가능 시간: 12~20시 사이에서만 매수 가능 - 전제 조건: 금일 04~12시의 최고가가 전일 20시부터 금일 04시까지의 최저가*1.01보다 높아야 함 - 매수 조건: 위 조건을 만족하고, 금일 04~12시 최고가 대비 1% 이상 하락하면, 그 즉시 매로 매수 - 피라미딩 조건: 그 이후에는 30분 봉이 완성될때마다 피라미딩으로 매수를 진입하는데, 반드시 최초 매수가 보다 가격이 낮고, 전봉의 종가보다 가격이 낮게 종가가 형성될때만 추가로 매수 진입을 해야함 (이 경우에도 매수 가능 시간 조건은 여전히 지켜야 함) 2. 매도 - 목표가 청산: 최초 매수 진입은 0.5% 수익시 or 04-12시의 최저가 대비 1프로 상승시 즉시 청산 피라미딩으로 쌓인 물량은 계속 0.1%p씩 가산하여 청산 목표를 상향함 즉, 최초 진입은 0.5 or 1, 다음 진입은 0.6 or 1.1... - 시간 청산: 목표청산이 이루어지지 않을 경우에는 매수 익일 02시에 무조건 청산 [전략 1과 2는 하나의 로직 내에서 운영할 것이므로, 피라미딩이 허용될 수 있도록 함] - 시스템에서 마우스로 직접 설정해야 하는 부분은 이해하고 있습니다. 개념적으로 문제가 생기지 않도록만 해주시면 됩니다. 감사합니다!
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-11-25 14:49:32

안녕하세요 예스스탁입니다. input : HighStartTime(200000),HighEndTime(040000); input : BuyStartTime1(040000),BuyEndTime1(120000); input : BuyStartTime2(120000),BuyEndTime2(200000); var : HTcond(False),hh(0),ll(0),BTcond1(False),h1(0),l1(0),cnt(0),x(0),BTcond2(False); Array : vv[100](0); if (sdate != sdate[1] and stime >= HighStartTime) or (sdate == sdate[1] and stime >= HighStartTime and stime[1] < HighStartTime) Then { HTcond = true; hh = h; } if (sdate != sdate[1] and stime >= HighEndTime) or (sdate == sdate[1] and stime >= HighEndTime and stime[1] < HighEndTime) Then HTcond = False; if HTcond == true Then { if h > hh Then hh = h; if l < ll Then ll = l; } if (sdate != sdate[1] and stime >= BuyStartTime1) or (sdate == sdate[1] and stime >= BuyStartTime1 and stime[1] < BuyStartTime1) Then { BTcond1 = true; h1 = h; l1 = l; x = 0; For cnt = 0 to 99 { vv[cnt] = 0; } } if (sdate != sdate[1] and stime >= BuyEndTime1) or (sdate == sdate[1] and stime >= BuyEndTime1 and stime[1] < BuyEndTime1) Then BTcond1 = False; if BTcond1 == true Then { if h > h1 Then h1 = h; if l < l1 Then l1 = l; if CurrentContracts > CurrentContracts[1] Then { For cnt = 99 downto 1 { vv[cnt] = vv[cnt-1]; } vv[0] = CurrentContracts-CurrentContracts[1]; } if MarketPosition == 0 and hh > 0 Then { Buy("b1",AtLimit,hh*0.99); } if MarketPosition == 1 and BarsSinceEntry > 0 Then { if C < C[1] and C < EntryPrice Then Buy("bb1"); } } if (sdate != sdate[1] and stime >= BuyStartTime2) or (sdate == sdate[1] and stime >= BuyStartTime2 and stime[1] < BuyStartTime2) Then { BTcond2 = true; x = 0; For cnt = 0 to 99 { vv[cnt] = 0; } } if (sdate != sdate[1] and stime >= BuyEndTime2) or (sdate == sdate[1] and stime >= BuyEndTime2 and stime[1] < BuyEndTime2) Then BTcond2 = False; if BTcond2 == true and h1 > 0 and hh > 0 and h1 > ll*1.01 Then { if CurrentContracts > CurrentContracts[1] Then { For cnt = 99 downto 1 { vv[cnt] = vv[cnt-1]; } vv[0] = CurrentContracts-CurrentContracts[1]; } if MarketPosition == 0 and hh > 0 Then { Buy("b2",AtLimit,hh*0.99); } if MarketPosition == 1 and BarsSinceEntry > 0 Then { if C < C[1] and C < EntryPrice Then Buy("bb2"); } } if MarketPosition == 1 Then { if CurrentContracts < CurrentContracts[1] Then { x = x+1; } var1 = min(EntryPrice*(1.005+0.001*x),ll*(1.01+0.001*x)); if var1 > 0 Then ExitLong("x",AtLimit,var1,"",vv[x],2); if IsEntryName("b1") == true and NextBarSdate != sDate Then ExitLong("bx1",AtMarket); if IsEntryName("b2") == true and ((NextBarSdate != sDate and NextBarStime >= 020000) or (NextBarSdate == sDate and NextBarStime >= 020000 and sTime < 020000)) Then ExitLong("bx2",AtMarket); } 즐거운 하루되세요 > 중박주식 님이 쓴 글입니다. > 제목 : 수식작성 부탁드립니다. > 24시간 거래되는 자산입니다. 30분 사용예정이고, 수식 구현에 필요시 data2에 일봉 같은걸 넣는 것으로 작성해주셔도 됩니다. [전략 1] 1. 매수 조건 - 매수 가능 시간: 04~12시 사이에서만 매수 가능 - 매수 조건: 전일 20시부터 금일 04시까지의 최고가 대비 1% 이상 하락하면, 그 즉시 매로 매수 - 피라미딩 조건: 그 이후에는 30분 봉이 완성될때마다 피라미딩으로 매수를 진입하는데, 반드시 최초 매수가 보다 가격이 낮고, 전봉의 종가보다 가격이 낮게 종가가 형성될때만 추가로 매수 진입을 해야함 (이 경우에도 매수 가능 시간 조건은 여전히 지켜야 함) 2. 매수 청산 조건 - 목표가 청산: 최초 매수 진입은 0.5% 수익시 or 04-12시의 최저가 대비 1프로 상승시 즉시 청산 피라미딩으로 쌓인 물량은 계속 0.1%p씩 가산하여 청산 목표를 상향함 즉, 최초 진입은 0.5 or 1, 다음 진입은 0.6 or 1.1... - 시간 청산: 목표청산이 이루어지지 않을 경우에는 매수당일 자정에 무조건 청산함 [전략 2] 1. 매수 조건 - 매수 가능 시간: 12~20시 사이에서만 매수 가능 - 전제 조건: 금일 04~12시의 최고가가 전일 20시부터 금일 04시까지의 최저가*1.01보다 높아야 함 - 매수 조건: 위 조건을 만족하고, 금일 04~12시 최고가 대비 1% 이상 하락하면, 그 즉시 매로 매수 - 피라미딩 조건: 그 이후에는 30분 봉이 완성될때마다 피라미딩으로 매수를 진입하는데, 반드시 최초 매수가 보다 가격이 낮고, 전봉의 종가보다 가격이 낮게 종가가 형성될때만 추가로 매수 진입을 해야함 (이 경우에도 매수 가능 시간 조건은 여전히 지켜야 함) 2. 매도 - 목표가 청산: 최초 매수 진입은 0.5% 수익시 or 04-12시의 최저가 대비 1프로 상승시 즉시 청산 피라미딩으로 쌓인 물량은 계속 0.1%p씩 가산하여 청산 목표를 상향함 즉, 최초 진입은 0.5 or 1, 다음 진입은 0.6 or 1.1... - 시간 청산: 목표청산이 이루어지지 않을 경우에는 매수 익일 02시에 무조건 청산 [전략 1과 2는 하나의 로직 내에서 운영할 것이므로, 피라미딩이 허용될 수 있도록 함] - 시스템에서 마우스로 직접 설정해야 하는 부분은 이해하고 있습니다. 개념적으로 문제가 생기지 않도록만 해주시면 됩니다. 감사합니다!