커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식문의드립니다

안녕하세요 이전에 도움주신 수식에 아래와 같은 조건을 추가하고 싶어 질문드립니다! 수식에 진입 이후 고가로 HB가 경신되도록 되어있는 부분에서 추후 피라미딩을 추가할 예정이라, 진입 이후엔 HB가 변하지 않고, 청산 이후에 진입때 고가로 HB가 업데이트 되도록 만들고 싶습니다 ex) HB, HB+10로 피라미딩 될 때, 진입 이후 고가로 HB가 계속 업데이트 되면, 피라미딩 진입 가격(HB+10)도 변하기 때문 HB 돌파시 1차진입 1차진입때의 HB는 변동 없고, 1차진입때의 고가를 저장 1차진입 청산 이후 HB를 저장한 고가로 업데이트 업데이트된 HB 기준으로 2차진입 & 청산까지 HB는 동일 2차진입 청산 이후, 고가 기준으로 HB 업데이트 ... 그래서 이전에 도움주신 수식에서 새로 rHB(); 변수를 선언한 뒤 marketposition이 진입한 상태일때 rHB = highest(H,barssinceentry); 로 업데이트하고 if B>0 && B == Hcount then HB = rHB; 로 HB를 업데이트 하도록 만들었습니다 1차 진입시엔 B가 0이므로, HB 초기치로 돌파진입 1차 청산 이후엔 B = Hcount = 1이므로, 이때 HB=rHB로 업데이트 업데이트된 rHB로 2차진입 2차진입이 되면 B = 1, Hcount = 2 이므로 HB는 업데이트되지 않고, rHB는 고가 경신시 업데이트 2차 청산 이후 B = Hcount = 2가 되며, 2차 진입에서 고가가 경신되었다면 HB 값도 업데이트 ... 이렇게 될거라 생각하고 아래와 같이 구성했는데 제가 생각한대로 작동하는 방식인지 확인 부탁드리겠습니다 감사합니다! input : TT(55700), TD(20220205), N(5) ; var : HB(14710), LB(14680), e60(0), Hcount(0), Lcount(0),B(0),S(0),cnt(0),T1(0), rHB(0), rLB(0) ; e60 = Ema(C,60); if Condition1 == False and sDate >= TD and sTime >= TT Then { Condition1 = true; Hcount = 0; Lcount = 0; T1 = TotalTrades; } if Condition1 == true Then { B = 0; S = 0; if TotalTrades-T1 > 0 Then { For cnt = 1 to TotalTrades-T1 { if MarketPosition(cnt) == 1 Then { B = B+1; } if MarketPosition(cnt) == -1 Then { S = S+1; } } } Hcount = B + IFf(MarketPosition == 1,1,0); Lcount = S + IFf(MarketPosition == -1,1,0); if Hcount < 3 then Buy("b",AtStop,HB,2) ; if Lcount < 3 then Sell("s",AtStop,LB,2) ; if B>0 && B == Hcount then HB = rHB; if S>0 && S == Lcount then LB = rLB; if marketposition > 0 Then { if e60 < HB Then ExitLong("exitL1",AtStop,HB-N); if e60 >= HB && CrossDown(close, e60) Then ExitLong("exitL2") ; rHB = Highest(H, BarsSinceEntry) ; } if marketposition < 0 Then { if e60 > LB Then ExitShort("exitS1",AtStop,LB+N); if e60 <= LB && CrossUp(close, e60) Then ExitShort("exitS2"); rLB = Lowest(L, BarsSinceEntry); } }
프로필 이미지
jshwang2
2022-02-10
1145
글번호 156181
시스템

목마와숙녀 님에 의해서 삭제되었습니다.

프로필 이미지
목마와숙녀
2022-02-10
0
글번호 156173
시스템
답변완료

75857 답변해주신 수식 질문드립니다

안녕하세요 어제 답변주신 수식이 잘 작동하는 것은 확인했습니다 감사합니다! 하지만 어떻게 그런 결과가 나오는지 잘 이해가 되지 않아 관련해 추가적으로 질문드립니다 질문 내용은 시스템 사이사이 해당하는 코드 밑에 적어놨습니다 input : TT(55700), TD(20220205), N(5) ; var : HB(14710), LB(14680), e60(0), Hcount(0), Lcount(0),B(0),S(0),cnt(0),T1(0) ; e60 = Ema(C,60); if Condition1 == False and sDate >= TD and sTime >= TT Then { Condition1 = true; Hcount = 0; Lcount = 0; T1 = TotalTrades; } Q1. 1-1 ) if문에 condition1을 선언 안했는데 condition1 == false가 조건으로 들어간게 무슨 의미이고 어떤 기능을 하나요? 1-2) Hcount, Lcount는 이미 변수 선언시 0으로 선언했는데 여기서 다시 0으로 만드는 이유가 무엇인가요? 1-3) TotalTrades는 처음에 0이고, 시스템을 돌려봐도 T1 = 0으로 변함이 없는데 이게 들어간 이유가 궁금합니다 if Condition1 == true Then { B = 0; S = 0; Q2. B, S 또한 처음 선언시 0으로 선언되었는데 다시 여기서 0으로 설정하는 이유가 뭔가요? if TotalTrades-T1 > 0 Then { For cnt = 1 to TotalTrades-T1 { if MarketPosition(cnt) == 1 Then { B = B+1; } if MarketPosition(cnt) == -1 Then { S = S+1; } } } Hcount = B + IFf(MarketPosition == 1,1,0); Lcount = S + IFf(MarketPosition == -1,1,0); if Hcount < 3 then Buy("b",AtStop,HB,2) ; if Lcount < 3 then Sell("s",AtStop,LB,2) ; Q3. Hcount, Lcount가 사용되는 이유가 뭔가요? 수식을 봤을 때 한번의 진입과 청산에서 Hcount는 진입 시점에 +1, B는 청산시점에 +1이 되는 것으로 보이는데 4번째 진입을 막아야 하는 상황인 3번째 진입-청산이 끝난 상황에선 B도 3이기 때문에 Hcount 대신 B를 써도 되지 않나요? if marketposition > 0 Then { if e60 < HB Then ExitLong("exitL1",AtStop,HB-N); if e60 >= HB && CrossDown(close, e60) Then ExitLong("exitL2") ; HB = Highest(H, BarsSinceEntry) ; } if marketposition < 0 Then { if e60 > LB Then ExitShort("exitS1",AtStop,LB+N); if e60 <= LB && CrossUp(close, e60) Then ExitShort("exitS2"); LB = Lowest(L, BarsSinceEntry); } } 의도한대로 잘 작동하게 짜주셔서 다시한번 감사합니다! 그래도 제가 정확히 이해를 하고있어야 나중에 사용하다 필요에 따라 수정 할 수 있을것 같아 부득이하게 디테일한 부분들에 대해 질문을 드렸습니다ㅠ 가능한만큼 답변해주시면 감사하겠습니다! 감사합니다
프로필 이미지
jshwang2
2022-02-10
1160
글번호 156171
시스템
답변완료

수식부탁드립니다.

Data1은 틱봉, Data2를 2분봉으로 셋팅하고 있습니다. data2에서 crossup이 발생하면 조건1 성립 후 data2 3개봉 이후(6분) 이후 조건=false로 조건이 변하도록 만들고 싶습니다. Data1은 틱봉입니다.
프로필 이미지
다올
2022-02-10
1146
글번호 156170
지표
답변완료

문의드립니다

if NextBarSdate == sDate Then Buy("", AtStop, 368.65); 임의로 작성한 식입니다. 포지션이 없는 상태라 가정하고 2022년 2월 9일날이라면 368.65 에 진입을 해야 하는데 장 후 시뮬레이션 상에서는 정상 진입하는 걸로 되는데 전략실행창에서는 10분봉 20분봉이나 30분봉에서 보면 진입을 하지 않는 걸로 됩니다. 10봉이라면 마지막에서 두번째 봉이기도 하고 어떤 원리인지 모르겠네요. 10분 미만의 봉에서는 또 정상 진입하네요. 예스스탁에 항상 감사드립니다.
프로필 이미지
시고르시고르
2022-02-09
1048
글번호 156169
시스템

leekss1 님에 의해서 삭제되었습니다.

프로필 이미지
leekss1
2022-02-09
0
글번호 156168
지표
답변완료

수식부탁드립니다=================

var2 = lowest(vmin,dayindex+1); plot8(var2,"종가최저가"); 위는 당일최저가인대요 093000이후 최저가는 식을 어떻게 쓰나요? 감사합니다
프로필 이미지
leekss1
2022-02-09
1329
글번호 156167
지표
답변완료

75859 수식 수정 부탁드립니다

<수정 질문1> c<mav1 인 경우 mav1 의 당일 최고치를 표시--->c<mav1 인 경우 mav1 의 당일 최저치 표시 c<mav2 인 경우 mav2 의 당일 최고치를 표시--->c<mav2 인 경우 mav2 의 당일 최저치 표시 c>mav1 인 경우 mav1 의 당일 최저치를 표시--->c>mav1 인 경우 mav1 의 당일 최고치 표시 c>mav2 인 경우 mav2 의 당일 최저치를 표시--->c>mav2 인 경우 mav2 의 당일 최고치 표시 감사합니다 ------------------------------------------- <전일 질문> 일봉 5ma ,20ma를 틱 차트에 구현하는 수식 <수정 질문1> c<mav1 인 경우 mav1 의 당일 최고치를 표시 c<mav2 인 경우 mav2 의 당일 최고치를 표시 c>mav1 인 경우 mav1 의 당일 최저치를 표시 c>mav2 인 경우 mav2 의 당일 최저치를 표시 <수정 질문2> 전일 종가 기준 일봉 5ma ,20ma를 금일 틱 차트에 구현하는 수식 감사합니다 ---------------------------------------------------------------------- 안녕하세요 예스스탁입니다. input : P1(5),P2(20); var : cnt(0); var : sumV1(0),sumV2(0); var : mav1(0),mav2(0); sumV1 = 0; sumV2 = 0; for cnt = 0 to P2 { if cnt < P1 Then sumV1 = sumV1+DayClose(cnt); if cnt < P2 Then sumV2 = sumV2+DayClose(cnt); } maV1 = sumV1 / P1; maV2 = sumV2 / P2; plot1(mav1); plot2(mav2); 즐거운 하루되세요 > 유튜버 님이 쓴 글입니다. > 제목 : 지표 질문입니다 > 일봉 5ma ,20ma를 틱 차트에 구현하는 수식 감사합니다
프로필 이미지
유튜버
2022-02-09
949
글번호 156166
지표
답변완료

인사

새해복 많이받으세요 항상감사합니다.
프로필 이미지
호정0688
2022-02-09
1037
글번호 156163
지표
답변완료

수식 부탁드립니다

안녕하세요 첫번째는 수식 부탁드립니다 아침 시가가 갭 2이상 상승해서 시작하고 10 이평선 위에 있을때 매수 아침 시가가 갭 0에서 2미만으로 상승해서 시작하고 5 이평선 위에 있을 때 매수 아침 시가가 갭 -2이하로 하락해서 시작하고 60 이평선 아래에 있을 때 매도 아침 시가가 갭 0에서 -2미만으로 하락해서 시작하고 120 이평선 아래에 있을 때 매도 두번째 질문은 챠트를 갭 보정을 하고 위의 식을 만들어도 적용이 가능한가요? 감사합니다
프로필 이미지
돌아온스머프
2022-02-09
1210
글번호 156162
지표