커뮤니티

수식 작성 문의

프로필 이미지
여의도
2023-04-07 11:00:09
1217
글번호 167995
답변완료
청산이후 최고가 대비 3%이상 하락후, 그 최저가 대비 1%이상 상승 돌파시 매수하도록 아래와 같이 수식을 작성하여 시뮬레이션했는데, 수식에 문제가 있는지 제대로 작동하지 않고 오랫동안 정지상태로 있다가 프로그램 종료됩니다. Var3의 값을 찾는데 어려움이 있는 것으로 보이는데, 수식을 수정하는데 도움을 주시면 고맙겠습니다. Var1= Highest(H,BarsSinceExit(1)); Var2= NthHighestBar(1,H,BarsSinceExit(1)); Var3= Lowest(L,Var2); If MarketPosition==0 and Var3<Var1*(1-0.03) and CrossUp(L,Var3*(1+0.01)) Then Buy("매수",OnClose);
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2023-04-07 13:05:26

안녕하세요 예스스탁입니다. 1 올려주신 내용은 청산이후의 조건이므로 직전에 거래가 있어야 합니다. 해당식만으로는 첫번째 거래가 발생할 수 없습니다. 즉 해당식 외에 다른 진입식이 있어야 합니다. 2 해당식 하나로 진입을 하기 위해서는 차트상 첫번째 매수가 되게 수식을 변형하셔야 합니다. 차트상 첫번째 매수는 첫봉이후 최고가에서 3%이상 하락한 이후 최저가에서 1% 상승시 진입하게 작성해 드립니다. 이후 두번째 매수진입부터는 기존과 같은 내용으로 매수하게 됩니다. var : HH(0),HL(0),BCond(False); if Index == 0 or TotalTrades > TotalTrades[1] Then { BCond = False; HH = H; HL = 0; } Else { if H > HH Then { HH = H; HL = 0; } Else { if HL == 0 or (HL > 0 and L < HL) Then { HL = L; if HL <= HH*(1-0.03) Then BCond = true; } } } If MarketPosition==0 and BCond == true and CrossUp(L,HL*(1+0.01)) Then Buy("매수",OnClose); 즐거운 하루되세요 > 여의도 님이 쓴 글입니다. > 제목 : 수식 작성 문의 > 청산이후 최고가 대비 3%이상 하락후, 그 최저가 대비 1%이상 상승 돌파시 매수하도록 아래와 같이 수식을 작성하여 시뮬레이션했는데, 수식에 문제가 있는지 제대로 작동하지 않고 오랫동안 정지상태로 있다가 프로그램 종료됩니다. Var3의 값을 찾는데 어려움이 있는 것으로 보이는데, 수식을 수정하는데 도움을 주시면 고맙겠습니다. Var1= Highest(H,BarsSinceExit(1)); Var2= NthHighestBar(1,H,BarsSinceExit(1)); Var3= Lowest(L,Var2); If MarketPosition==0 and Var3<Var1*(1-0.03) and CrossUp(L,Var3*(1+0.01)) Then Buy("매수",OnClose);
프로필 이미지

여의도

2023-04-07 15:33:51

첫번째 거래는 적당한 별도의 식을 앞 부분에 작성하였으므로 문제가 없습니다. 문제는 청산이후 최고가 대비 3%이상 하락이후, 변동되는 그 최저가를 구하는 것이 관건인데, 작성하여 주신 식이 어떤 원리로 그 값이 되는지 잘 이해가 안됩니다. 시간이 되시면 쉽게 설명하여 주시면 고맙겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 문의 > 안녕하세요 예스스탁입니다. 1 올려주신 내용은 청산이후의 조건이므로 직전에 거래가 있어야 합니다. 해당식만으로는 첫번째 거래가 발생할 수 없습니다. 즉 해당식 외에 다른 진입식이 있어야 합니다. 2 해당식 하나로 진입을 하기 위해서는 차트상 첫번째 매수가 되게 수식을 변형하셔야 합니다. 차트상 첫번째 매수는 첫봉이후 최고가에서 3%이상 하락한 이후 최저가에서 1% 상승시 진입하게 작성해 드립니다. 이후 두번째 매수진입부터는 기존과 같은 내용으로 매수하게 됩니다. var : HH(0),HL(0),BCond(False); if Index == 0 or TotalTrades > TotalTrades[1] Then { BCond = False; HH = H; HL = 0; } Else { if H > HH Then { HH = H; HL = 0; } Else { if HL == 0 or (HL > 0 and L < HL) Then { HL = L; if HL <= HH*(1-0.03) Then BCond = true; } } } If MarketPosition==0 and BCond == true and CrossUp(L,HL*(1+0.01)) Then Buy("매수",OnClose); 즐거운 하루되세요 > 여의도 님이 쓴 글입니다. > 제목 : 수식 작성 문의 > 청산이후 최고가 대비 3%이상 하락후, 그 최저가 대비 1%이상 상승 돌파시 매수하도록 아래와 같이 수식을 작성하여 시뮬레이션했는데, 수식에 문제가 있는지 제대로 작동하지 않고 오랫동안 정지상태로 있다가 프로그램 종료됩니다. Var3의 값을 찾는데 어려움이 있는 것으로 보이는데, 수식을 수정하는데 도움을 주시면 고맙겠습니다. Var1= Highest(H,BarsSinceExit(1)); Var2= NthHighestBar(1,H,BarsSinceExit(1)); Var3= Lowest(L,Var2); If MarketPosition==0 and Var3<Var1*(1-0.03) and CrossUp(L,Var3*(1+0.01)) Then Buy("매수",OnClose);
프로필 이미지

예스스탁 예스스탁 답변

2023-04-07 16:05:36

안녕하세요 예스스탁입니다. 1 답변드린 수식은 혹시 진입이 해당식만 있는 경우라면 차트상 첫번째 진입신호를 발생시키기 위해 해당 식으로 첫진입이 직전 청산이 아니라 차트 첫봉 이후 최고가에서 3%이상 하락하고 이후 최저가에서 1% 상승시 매수되는 내용만 추가한 것입니다. 다만 위의 경우를 포함하기 위해 식을 풀어서 작성한 것일뿐입니다. 2 수식에 다른 진입식이 있다면 첨부된 그림과 같이 해당식 신호발생에 문제가 없습니다. 다만 봉수를 지정하는 함수에 변동값을 지정하면 최대 1024봉 까지만 체크가 됩니다. 청산후 1024봉 이상 경과하면 Highest(H,BarsSinceExit(1))로 값을 리턴받지 못하므로 아래와 같이 풀어서 작성해 사용해 주셔야 합니다. if TotalTrades > TotalTrades[1] Then { BCond = False; HH = H; HL = 0; } Else { if H > HH Then { HH = H; HL = 0; } Else { if HL == 0 or (HL > 0 and L < HL) Then { HL = L; if HL <= HH*(1-0.03) Then BCond = true; } } } If MarketPosition==0 and BCond == true and CrossUp(L,HL*(1+0.01)) Then Buy("매수",OnClose); 즐거운 하루되세요 > 여의도 님이 쓴 글입니다. > 제목 : 수식 작성 문의 > 청산이후 최고가 대비 3%이상 하락후, 그 최저가 대비 1%이상 상승 돌파시 매수하도록 아래와 같이 수식을 작성하여 시뮬레이션했는데, 수식에 문제가 있는지 제대로 작동하지 않고 오랫동안 정지상태로 있다가 프로그램 종료됩니다. Var3의 값을 찾는데 어려움이 있는 것으로 보이는데, 수식을 수정하는데 도움을 주시면 고맙겠습니다. Var1= Highest(H,BarsSinceExit(1)); Var2= NthHighestBar(1,H,BarsSinceExit(1)); Var3= Lowest(L,Var2); If MarketPosition==0 and Var3<Var1*(1-0.03) and CrossUp(L,Var3*(1+0.01)) Then Buy("매수",OnClose);