커뮤니티

data2에 관한 문의

프로필 이미지
초심자의행운
2022-05-15 06:24:31
1100
글번호 158869
답변완료
input: period(20), n(2); value1 = BollBandUp(period,n) ; Value2 = BollBandDown(period,n); Value3 = ma(c,60); if CrossUp(Value2,Value3) and Value3[1] < Value3 Then Buy("ll"); if CrossDown(Value1,Value3) Then Sell("ss"); 예를 들면 이 전략을 data2에 적용하려면 data2(CrossUp(Value2,Value3) and Value3[1] < Value3 ) 이런식으로는 안되는건가요? // 위 식으로 data2에서 "ll"이 발생하고 "ss"가 발생하기 사이에 data1에서 신호가 발생하게 만들고 싶은데 방법이 있을까요? 다시 말해 긴 시간프레임의 진입신호가 짧은시간프레임의 진입 조건이 되도록 하고 싶습니다 // data1 이 3분봉 data2 가 15분봉일 경우 data2의 조건이 c>ma(c,50) 같은 지속형 조건이 아닌 crossup이라던지 c>o라던지 어떤 한 순간만 만족하는 조건일 경우 data2의 봉이 완성되는 순간 data1에서의 요구조건과 일치하는 경우에만 신호가 발생하나요? 즉 신호가 아무리 많이 발생할 수 있다고 해도 15분에 한번이 최대인가요? // data2(open) < data2(close) 와 data2(o<c) / data2(o<c)[1] 과 data2(o[1]<c[1]) 이런것들은 뭐가 맞는 표현식인가요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-05-16 11:40:15

안녕하세요 예스스탁입니다. 1 변수는 계산한 수치값을 저장만 하게 됩니다. value1,value2,value3 자체가 data1로 계산된 값이므로 변수에 data2함수 처리를 하는 것은 의미가 없습니다. input: period(20), n(2); var : value1(0,Data2),Value2(0,Data2),Value3(0,Data2); value1 = data2(BollBandUp(period,n)); Value2 = data2(BollBandDown(period,n)); Value3 = data2(ma(c,60)); 계산식 자체에 데이타함수 처리하셔야 합니다. 또한 참조데이타를 이용할 경우 모든 변수는 위와 같이 선언에 데이타변수를 처리해 주셔야 합니다. 그래야 해당값이 지정한 데이타의 주기로 저장하고 사용할 수 있습니다. 2 crossup은 특정봉 하나를 의미합니다. 그러므로 하나의 if문에 data1조건과 data2조건을 같이 사용하면 동시에 만족하는 봉에만 신호가 발생합니다. 그러므로 data2 매수조건이 만족하면 변수에 1과 같이 값을 저장하고 매도조건 만족하면 0으로 초기화 해서 구간을 지정할 수 있게 만드시고 해당 구간에서 data1조건 충족하면 신호가 발생하게 하셔야 합니다. input: period(20), n(2); var : T(0,Data1); var : value1(0,Data2),Value2(0,Data2),Value3(0,Data2); value1 = data2(BollBandUp(period,n)); Value2 = data2(BollBandDown(period,n)); Value3 = data2(ma(c,60)); if CrossUp(Value2,Value3) and Value3[1] < Value3 Then T = 1; if CrossDown(Value1,Value3) Then T = 0; if T == 1 Then { if Data1조건 Then Buy(); } 3 data2(open) < data2(close) 와 data2(o<c) 둘다 맞는 표현입니다. data2(o<c)[1] 과 data2(o[1]<c[1]) data2(o<c)[1]은 문법상 맞지 않습니다. 데이타 함수안에 이전봉 지정이 들어가야 합니다. data2(o[1]) < data2(c[1])이나 data2(o[1]<c[1])로 작성해 사용하서야 합니다. 즐거운 하루되세요 > 초심자의행운 님이 쓴 글입니다. > 제목 : data2에 관한 문의 > input: period(20), n(2); value1 = BollBandUp(period,n) ; Value2 = BollBandDown(period,n); Value3 = ma(c,60); if CrossUp(Value2,Value3) and Value3[1] < Value3 Then Buy("ll"); if CrossDown(Value1,Value3) Then Sell("ss"); 예를 들면 이 전략을 data2에 적용하려면 data2(CrossUp(Value2,Value3) and Value3[1] < Value3 ) 이런식으로는 안되는건가요? // 위 식으로 data2에서 "ll"이 발생하고 "ss"가 발생하기 사이에 data1에서 신호가 발생하게 만들고 싶은데 방법이 있을까요? 다시 말해 긴 시간프레임의 진입신호가 짧은시간프레임의 진입 조건이 되도록 하고 싶습니다 // data1 이 3분봉 data2 가 15분봉일 경우 data2의 조건이 c>ma(c,50) 같은 지속형 조건이 아닌 crossup이라던지 c>o라던지 어떤 한 순간만 만족하는 조건일 경우 data2의 봉이 완성되는 순간 data1에서의 요구조건과 일치하는 경우에만 신호가 발생하나요? 즉 신호가 아무리 많이 발생할 수 있다고 해도 15분에 한번이 최대인가요? // data2(open) < data2(close) 와 data2(o<c) / data2(o<c)[1] 과 data2(o[1]<c[1]) 이런것들은 뭐가 맞는 표현식인가요?