커뮤니티

수식 문의드립니다.

프로필 이미지
깜피
2021-03-23 13:54:13
1279
글번호 147315
답변완료
안녕하세요, 시스템 및 검색 관련해서 몇 가지 문의드립니다. // 종목 선정 후 100봉 이내이고, 직전봉까지 중간값[(고+저)/2] 밑으로 내려온 적이 없고, 저점을 3일간 지켜준 종목이 중간값 하향이탈시 매수 시스템은 일봉 기준으로 종목을 선정해서 테스트하고 있었는데 당일 매수/매도가 동시에 발생하는 경우 및 봉 완성 시 매수/매도되는 경우에는 시스템 로직과 가격 괴리가 발생하는 문제가 있어서 1분으로 운용하고 싶은데 다음 수식을 분봉 형태로 수정하는게 가능할지 문의드립니다(분할 매수 및 기간 등 추가) 저점 3일간 지켜준 경우 : 종목 선정 후 발생하는 봉(미지정)의 저가를 익일 및 익익일의 저가가 깨지 않는 경우(종목 선정 후 1회만 발생하면 됨) 두서없이 질문해서 죄송하고, 항상 감사드립니다. -------------------------------------------------------------------------------- Var : Price_high_100(0), Price_low_100(0), Volume_high_100(0), Count_Pick(0), Con_Pick(false); Price_high_100 = highest(h,100); //고가 Price_low_100 = lowest(L,100); //저가 Volume_high_100 = Highest(V, 100); if M>=10000000000 and Price_high_100 == h and H>Price_low_100 * 2 and Volume_high_100 == v then { Con_Pick = true; Count_Pick = 1; } //종목 선정 후 100봉 이내에서 기준을 다시 충족하면 종목 재선정 if Con_Pick == true and Count_Pick <=100 and M>=10000000000 and Price_high_100 == h and H>Price_low_100 * 2 and Volume_high_100 == v then { Count_Pick= 1; } // 종목 선정 후 100봉 이내이고, 직전봉까지 중간값[(고+저)/2] 밑으로 내려온 적이 없고, 저점을 3일간 지켜준 종목이 중간값 하향이탈시 매수 if Con_Pick== true and (Count_Pick>= 1 and Count_Pick<= 100) and AccumN(iff( L > (Price_high_100 + Price_low_100)/2,1,0), Count_Pick) >= Count_Pick- 1 and 저점을 3일간 지켜주는 경우 and crossdown(L,(Price_high_100 + Price_low_100)/2) then{ // 1차 매수 } // (Price_high_100-Price_low_100)/10 만큼 추가 하락할 때마다 추가로 매수(총 5회차 까지 매수) // 1차 매수만 된 경우에는 10% 상승 시 청산 // 2차 매수까지 된 경우에는 1차 매수가격에 청산 // 3차 매수까지 된 경우에는 (1차 + 2차)/2 가격에 청산 // 4차 매수까지 된 경우에는 2차 매수가격에 청산 // 5차 매수까지 된 경우에는 (2차 + 3차)/2 가격에 청산 // 5차 매수 이후 (Price_high_100-Price_low_100)/10 만큼 더 하락하면 손절 Count_Pick= Count_Pick+ 1; // 봉 선정 후 거래없이 100일 지나면 초기화 if Count_Pick> 100 and then { Con_Pick= false; Count_Pick= 0; } // 수익으로 청산된 후에라도 100일 이내에 다시 다음 차수의 매수가격이 오면 재진입 // 1차 매수 후 수익 청산된 후 2차 매수가격이 오면 2차~5차(총4회차)까지 매수 진입 가능
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-03-24 13:40:23

안녕하세요 예스스탁입니다. 분봉차트에서는 최대의 최대봉조회갯수문제로 해당내용을 구현할 수 없습니다. 현재 봉완성시 진입으로 되어 있는 부분을 봉미완성시에 터치하면 진입하고 청산하게 변경해 드립니다. 파리미딩은 다른진입신호만 허용으로 설정하고 적용하시면 됩니다. 주석 내용 참고하셔서 수정보완해 사용하시기 바랍니다. Var : Price_high_100(0), Price_low_100(0), Volume_high_100(0), Cond_index(0); var : diff(0),E1(0),E2(0),E3(0),E4(0),E5(0),LS(0); var : Entry1(false),Entry2(false),Entry3(false),Entry4(false),Entry5(false); Price_high_100 = highest(h,100); //고가 Price_low_100 = lowest(L,100); //저가 Volume_high_100 = Highest(V, 100); #조건충족봉 if M >= 10000000000 and Price_high_100 == h and H > Price_low_100 * 2 and Volume_high_100 == v then { #봉번호 저장 Cond_index = Index; #폭저장 diff = Price_high_100-Price_low_100; #1~5차 진입가 및 손절가 E1 = (Price_high_100+Price_low_100)/2; E2 = E1-diff*0.1; E3 = E1-diff*0.2; E4 = E1-diff*0.3; E5 = E1-diff*0.4; LS = E1-diff*0.5; LS = E1-diff*0.5; #각 진입 초기값 Entry1 = False; Entry2 = False; Entry3 = False; Entry4 = False; Entry5 = False; Condition1 = False; } Else #조건충족하지 않은 봉 { # Cond_index에 봉번호가 저장되어 있고 # 현재봉이 조건충족봉대비 100봉 이내일때 if Cond_index > 0 and Index < Cond_index+100 Then { #저가가 중간값이하인 봉이 발생하면 Cond_index은 0으로 초기화 if Condition1 == False and L <= E1 Then Condition1 = true; #3봉연속 저가가 전봉저가를 깨지 않으면 entry true if Index >= Cond_index+3 and Cond_index > 0 and Condition1 == False and CountIf(L > L[1],3) == 3 Then { Entry1 = true; Entry2 = true; Entry3 = true; Entry4 = true; Entry5 = true; } } TL_SetEnd(var1,sDate,sTime,E1); } #조건만족후 100봉이내에 if Cond_index > 0 and Index >= Cond_index and Index < Cond_index+500 Then { #하락해 지정한 가격들 터치하면 매수 if entry1 == true and E1 > 0 and L > E1 Then Buy("b1",AtLimit,E1); if entry2 == true and E2 > 0 and L > E2 Then Buy("b2",AtLimit,E2); if entry3 == true and E3 > 0 and L > E3 Then Buy("b3",AtLimit,E3); if entry4 == true and E4 > 0 and L > E4 Then Buy("b4",AtLimit,E4); if entry5 == true and E5 > 0 and L > E5 Then Buy("b5",AtLimit,E5); } #매수진입 후 #최근진입에 때라 청산설정 #각 진입은 조건만족후 한번 발생하면 다음조건만족까지 진입불가 if MarketPosition == 1 Then { if LatestEntryName(0) == "b1" Then { ExitLong("bx1",AtLimit,E1*1.10); entry1 = False; } if LatestEntryName(0) == "b2" Then { ExitLong("bx2",AtLimit,E1); entry2 = False; } if LatestEntryName(0) == "b3" Then { ExitLong("bx3",AtLimit,(E1+E2)/2); entry3 = False; } if LatestEntryName(0) == "b4" Then { ExitLong("bx4",AtLimit,E2); entry4 = False; } if LatestEntryName(0) == "b5" Then { ExitLong("bx5",AtLimit,(E2+E3)/2); entry5 = False; ExitLong("bl",AtStop,LS); } } 즐거운 하루되세요 > 깜피 님이 쓴 글입니다. > 제목 : 수식 문의드립니다. > 안녕하세요, 시스템 및 검색 관련해서 몇 가지 문의드립니다. // 종목 선정 후 100봉 이내이고, 직전봉까지 중간값[(고+저)/2] 밑으로 내려온 적이 없고, 저점을 3일간 지켜준 종목이 중간값 하향이탈시 매수 시스템은 일봉 기준으로 종목을 선정해서 테스트하고 있었는데 당일 매수/매도가 동시에 발생하는 경우 및 봉 완성 시 매수/매도되는 경우에는 시스템 로직과 가격 괴리가 발생하는 문제가 있어서 1분으로 운용하고 싶은데 다음 수식을 분봉 형태로 수정하는게 가능할지 문의드립니다(분할 매수 및 기간 등 추가) 저점 3일간 지켜준 경우 : 종목 선정 후 발생하는 봉(미지정)의 저가를 익일 및 익익일의 저가가 깨지 않는 경우(종목 선정 후 1회만 발생하면 됨) 두서없이 질문해서 죄송하고, 항상 감사드립니다. -------------------------------------------------------------------------------- Var : Price_high_100(0), Price_low_100(0), Volume_high_100(0), Count_Pick(0), Con_Pick(false); Price_high_100 = highest(h,100); //고가 Price_low_100 = lowest(L,100); //저가 Volume_high_100 = Highest(V, 100); if M>=10000000000 and Price_high_100 == h and H>Price_low_100 * 2 and Volume_high_100 == v then { Con_Pick = true; Count_Pick = 1; } //종목 선정 후 100봉 이내에서 기준을 다시 충족하면 종목 재선정 if Con_Pick == true and Count_Pick <=100 and M>=10000000000 and Price_high_100 == h and H>Price_low_100 * 2 and Volume_high_100 == v then { Count_Pick= 1; } // 종목 선정 후 100봉 이내이고, 직전봉까지 중간값[(고+저)/2] 밑으로 내려온 적이 없고, 저점을 3일간 지켜준 종목이 중간값 하향이탈시 매수 if Con_Pick== true and (Count_Pick>= 1 and Count_Pick<= 100) and AccumN(iff( L > (Price_high_100 + Price_low_100)/2,1,0), Count_Pick) >= Count_Pick- 1 and 저점을 3일간 지켜주는 경우 and crossdown(L,(Price_high_100 + Price_low_100)/2) then{ // 1차 매수 } // (Price_high_100-Price_low_100)/10 만큼 추가 하락할 때마다 추가로 매수(총 5회차 까지 매수) // 1차 매수만 된 경우에는 10% 상승 시 청산 // 2차 매수까지 된 경우에는 1차 매수가격에 청산 // 3차 매수까지 된 경우에는 (1차 + 2차)/2 가격에 청산 // 4차 매수까지 된 경우에는 2차 매수가격에 청산 // 5차 매수까지 된 경우에는 (2차 + 3차)/2 가격에 청산 // 5차 매수 이후 (Price_high_100-Price_low_100)/10 만큼 더 하락하면 손절 Count_Pick= Count_Pick+ 1; // 봉 선정 후 거래없이 100일 지나면 초기화 if Count_Pick> 100 and then { Con_Pick= false; Count_Pick= 0; } // 수익으로 청산된 후에라도 100일 이내에 다시 다음 차수의 매수가격이 오면 재진입 // 1차 매수 후 수익 청산된 후 2차 매수가격이 오면 2차~5차(총4회차)까지 매수 진입 가능