커뮤니티

시스템 문의 드립니다

프로필 이미지
충주미꾸라지
2019-10-05 20:48:46
193
글번호 132509
답변완료
안녕하세요. 시스템 문의 드립니다. 3가지 요청드립니다. 1. 진입 시그널 필터 추가 맨 밑에 식을 보시면, 지금은 P기간의 고점/저점을 돌파하면 신호가 발생하는데요, 하기 진입 시그널 필터를 추가하고자 합니다. (매수신호) a) P기간의 고점을 돌파함 (제1봉) b1) 다음 봉에서 가격이 제1봉의 전체 길이의 1/3이 넘게 높아질 때, 바로 매수신호 발생 (제1봉 길이가 90틱이면, 다음봉에서 제1봉의 고점보다 30틱 넘게 높아질 때) b2) b1의 상황이 발생하지 않았을 시, 다음 봉의 저점이 제1봉의 저점 밑으로 가지 않았을 때, 다다음봉 시가에서 매수신호 발생 (매도신호) 매수신호의 반대 2. P기간 저점/고점 돌파한 봉의 길이에 따른 진입 시그널 발생 건너뛰기 P기간의 고점/저점을 돌파한 봉의 길이가 100틱이 넘어가면, 1) 1번에 의한 신호 발생을 하지 않고 2) 이후 10봉을 쉬고, 11봉째부터 신호가 발생하게 해주세요. (단, 포지션 있을 시는 봉의 길이와 상관없이 청산되게 해주세요.) 3. 청산신호 추가 P기간 돌파한 봉의 저점/고점에 청산신호 추가 즉, 청산신호가 2개 입니다. a) 하기 식에서 발생하는 청산신호. b) 지금 추가하는 P기간 돌파한 봉의 저점/고점을 진입 후 기억해두고 거기에 닿으면 바로 청산하는 청산신호 input : period(50), P(20); var1 = ma(c, period); var2 = highest(H,P); var3 = Lowest(L,P); if c > var1 and crossup(c,var2[1]) Then buy("매수"); if MarketPosition == 1 and CrossDown(c,var3[1]) Then exitlong("매수청산"); if c < var1 and CrossDown(c,var3[1]) Then sell("매도"); if MarketPosition == -1 and CrossUp(c,var2[1]) Then ExitShort("매도청산");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-10-07 15:11:42

안녕하세요 예스스탁입니다. input : period(50), P(20); var : X(false); var1 = ma(c, period); var2 = highest(H,P); var3 = Lowest(L,P); if X == false and c > var1 and crossup(c,var2[1]) Then { value1 = index; value2 = (H-L)/PriceScale; value3 = L; if value2 >= 100 Then X = true; if MarketPosition <= 0 and X == false then buy("매수1",AtStop,H+(H-L)*(1/3)); } if X == false and c < var1 and CrossDown(c,var3[1]) Then { value1 = index; value2 = (H-L)/PriceScale; value3 = H; if value2 >= 100 Then X = true; if MarketPosition >= 0 and X == false Then sell("매도",AtStop,L-(H-L)*(1/3)); } if MarketPosition <= 0 and value1 > 0 and index == value1+1 and X == false Then buy("매수2",AtMarket); if MarketPosition >= 0 and value1 > 0 and index == value1+1 and X == false Then sell("매도2",AtMarket); if X == true and value1 > 0 and index == value1+10 Then X = false; if MarketPosition == 1 then { exitlong("매수청산1",AtStop,value1[BarsSinceEntry]); if CrossDown(c,var3[1]) Then exitlong("매수청산2"); } if MarketPosition == -1 then { ExitShort("매도청산1",AtStop,value1[BarsSinceEntry]); if CrossUp(c,var2[1]) Then ExitShort("매도청산2"); } 즐거운 하루되세요 > 충주미꾸라지 님이 쓴 글입니다. > 제목 : 시스템 문의 드립니다 > 안녕하세요. 시스템 문의 드립니다. 3가지 요청드립니다. 1. 진입 시그널 필터 추가 맨 밑에 식을 보시면, 지금은 P기간의 고점/저점을 돌파하면 신호가 발생하는데요, 하기 진입 시그널 필터를 추가하고자 합니다. (매수신호) a) P기간의 고점을 돌파함 (제1봉) b1) 다음 봉에서 가격이 제1봉의 전체 길이의 1/3이 넘게 높아질 때, 바로 매수신호 발생 (제1봉 길이가 90틱이면, 다음봉에서 제1봉의 고점보다 30틱 넘게 높아질 때) b2) b1의 상황이 발생하지 않았을 시, 다음 봉의 저점이 제1봉의 저점 밑으로 가지 않았을 때, 다다음봉 시가에서 매수신호 발생 (매도신호) 매수신호의 반대 2. P기간 저점/고점 돌파한 봉의 길이에 따른 진입 시그널 발생 건너뛰기 P기간의 고점/저점을 돌파한 봉의 길이가 100틱이 넘어가면, 1) 1번에 의한 신호 발생을 하지 않고 2) 이후 10봉을 쉬고, 11봉째부터 신호가 발생하게 해주세요. (단, 포지션 있을 시는 봉의 길이와 상관없이 청산되게 해주세요.) 3. 청산신호 추가 P기간 돌파한 봉의 저점/고점에 청산신호 추가 즉, 청산신호가 2개 입니다. a) 하기 식에서 발생하는 청산신호. b) 지금 추가하는 P기간 돌파한 봉의 저점/고점을 진입 후 기억해두고 거기에 닿으면 바로 청산하는 청산신호 input : period(50), P(20); var1 = ma(c, period); var2 = highest(H,P); var3 = Lowest(L,P); if c > var1 and crossup(c,var2[1]) Then buy("매수"); if MarketPosition == 1 and CrossDown(c,var3[1]) Then exitlong("매수청산"); if c < var1 and CrossDown(c,var3[1]) Then sell("매도"); if MarketPosition == -1 and CrossUp(c,var2[1]) Then ExitShort("매도청산");