커뮤니티

문의드립니다.

프로필 이미지
블랙홀
2011-05-10 15:19:45
668
글번호 38461
답변완료
아래 청산조건을 진입과 청산을 자동으로 할때와 진입(매수및 매도)은 제가 직접하고(수동) 매수청산 과 매도청산만 시스템으로 할때와 2가지로 부탁드립니다. 그리고 매도시스템식 수정좀부탁드립니다. =============================================================== 매수청산 조건 1) 음봉으로 5일선 하락 또는 20일선 하락시 2) 연속2음봉 발생시 3) 진입가 대비 8틱수익후 4틱밀리시 4) MACD SIG 데드크로시 발생시 매도청산 조건 1) 양봉으로 5일선 돌파 또는 20일선 돌파시 2) 연속2양봉 발생시 3) 진입가 대비 8틱수익후 4틱밀리시 4) MACD SIG 골든크로시 발생시 =========================================================== 아래 매도식을 참고로 약간 수정하려고 하는데 에레가 나와서 수정점 부탁드립니다. # 1) ~ 4) 진입은 볼린저 상단선과 중심선위에만 진입 해야함 1) 장대음봉이면서 볼린저 밴드 몇봉전 데드크로스 이거나 볼린저밴드 상단선 근처1.00~0.97내에서만 MACD SIG 데드크로시 또는 2) 장대음봉이면서 볼린저 밴드 몇봉전 데드크로스 이거나 볼린저밴드 상단선 근처1.00~0.97내에서만 5일선 데드크로시 또는 3) 연속2음봉이면서 볼린저 밴드 몇봉전 데드크로스 이거나 볼린저밴드 상단선 근처1.00~0.97내에서만 MACD SIG 데드크로시 또는 4) 연속2음봉이면서 볼린저 밴드 몇봉전 데드크로스 이거나 볼린저밴드 상단선 근처1.00~0.97내에서만 5일선 데드크로시 # 5)번~6번) 진입은 볼린저밴드 중심선과 하단선 위에 서만 5) 몇봉전에 MACD SIG 데드크로시가 있고 장대음봉으로 밴드 중심선 데드크로시 또는 6) 몇봉전에 MACD SIG 데드크로시가 있고 연속2음봉으로 밴드 중심선 데드크로시 # 7)번~8번) 진입은 볼린저밴드 하단선 아래에서만 7) 장대음봉으로 밴드 하단선 데드크로시 또는 8) 2음봉으로 밴드 하단선 데드크로시 1) ~ 8)번을 하나의 식으로 만들어주시돼 조건은 대도록 countif함수를 이용해서 만들어주세요. if BWidth >= BWidth[N]*(1+Per/100) And countif(CrossDown(MACDV,MACDS),3) >= 1 And countif(C <= O-PriceScale*P1 And C >= O-PriceScale*P2,1) >= 1 and countif(CrossDown(C,BBTOP),1) >= 1 and countif(CrossDown(c,ma(C,5)),1) >=1 and countif(c <= BBTop*1.00 And c >= BBTop*0.97 and CrossDown(C,BBTop),1) >=1 Then sell("s1",AtMarket); ================================================================================= 추신 ) 지난번 만들어 주신 MACD SIG 지표식을 차트에 드래그해서 적용하려고 하는데 드래그를 할수가 없게 되네요. 지표를 적용하면 수식에는 이상이 없다고 지표식은 만들어지는데 적용하면 선물차트 아래에 지표명만 나오고 표시없이 아무것도 없네요. 그리고 드래그로 올려지지도 않네요. 원래 만들어진 지표식은 드래그가 돼서 선물차트와 병용이 되는데 수식으로 작성한 지표들은 왜 안되나요...? 항상감사드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-05-11 13:39:57

안녕하세요 예스스탁입니다. 1. 청산식입니다. 진입식을 추가하시면 됩니다. Input : shortPeriod(12), longPeriod(26), Period(9); value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); if MarketPosition == 1 Then{ if C < O and (ma(C,5) < ma(C,5)[1] or ma(C,20) < ma(C,20)[1]) Then exitlong("bx1"); if countif(C<O,2) == 2 Then exitlong("bx2"); if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*8 Then exitlong("bx3",AtStop,highest(H,BarsSinceEntry)-PriceScale*4); if CrossDown(value1,value2) Then ExitLong("bx4"); } if MarketPosition == -1 Then{ if C > O and (ma(C,5) > ma(C,5)[1] or ma(C,20) > ma(C,20)[1]) Then ExitShort("sx1"); if countif(C>O,2) == 2 Then ExitShort("sx2"); if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*8 Then ExitShort("sx3",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*4); if CrossUp(value1,value2) Then ExitShort("sx4"); } 2. 수동 진입의 경우입니다. position을 1로 하시면 매수 -1을 매도이며 시스템을 적용하는 날짜와 시간을 지정해 주셔야 합니다. Input : shortPeriod(12), longPeriod(26), Period(9),position(1),시스템적용날짜(20110511),시스템적용시간(90000); value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); if index == 0 Then{ if position == 1 Then buy(); if position == -1 Then sell(); } if sdate >= 시스템적용날짜 and stime >= 시스템적용시간 Then{ if MarketPosition == 1 Then{ if C < O and (ma(C,5) < ma(C,5)[1] or ma(C,20) < ma(C,20)[1]) Then exitlong("bx1"); if countif(C<O,2) == 2 Then exitlong("bx2"); if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*8 Then exitlong("bx3",AtStop,highest(H,BarsSinceEntry)-PriceScale*4); if CrossDown(value1,value2) Then ExitLong("bx4"); } if MarketPosition == -1 Then{ if C > O and (ma(C,5) > ma(C,5)[1] or ma(C,20) > ma(C,20)[1]) Then ExitShort("sx1"); if countif(C>O,2) == 2 Then ExitShort("sx2"); if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*8 Then ExitShort("sx3",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*4); if CrossUp(value1,value2) Then ExitShort("sx4"); } } 3. input : P(20),Dv(2); var1 = BollBandup(P,Dv); var2 = ma(c,P); var3 = BollBandDown(P,Dv); if C < var1 and C >= var2 Then{ if C <= O-PriceScale*P1 And C >= O-PriceScale*P2 And countif(CrossDown(C,BBTOP),3) >= 1 and C >= var1*0.97 and CrossDown(MACDV,MACDS) Then sell(); if C <= O-PriceScale*P1 And C >= O-PriceScale*P2 And countif(CrossDown(C,BBTOP),3) >= 1 and C >= var1*0.97 and CrossDown(c,ma(c,5)) Then sell(); if countif(C<O,2) ==2 and countif(CrossDown(C,BBTOP),1) >= 1 and C >= var1*0.97 and CrossDown(MACDV,MACDS) Then sell(); if countif(C<O,2) ==2 and countif(CrossDown(C,BBTOP),1) >= 1 and C >= var1*0.97 and CrossDown(c,ma(c,5)) Then sell(); } if C < var2 and C >= var3 Then{ if C <= O-PriceScale*P1 And C >= O-PriceScale*P2 And countif(CrossDown(MACDV,MACDS),3) >= 1 and C >= var1*0.97 and CrossDown(c,var2) Then sell(); if countif(C<O,2) == 2 And countif(CrossDown(MACDV,MACDS),3) >= 1 and C >= var1*0.97 and CrossDown(c,var2) Then sell(); } if C < var3 Then{ if C <= O-PriceScale*P1 And C >= O-PriceScale*P2 And CrossDown(c,var3) Then sell(); if countif(C<O,2) == 2 And CrossDown(c,var2) Then sell(); } 4. 해당 내용은 정확한 내용을 모르겠습니다. 수식내에 값이 제대로 할당이 되지 않거나 띠엄띠엄 할당되는 경우일것 같습니다. 작서하신 지표식을 오려주시기 바랍니다. 즐거운 하루되세요 > 블랙홀 님이 쓴 글입니다. > 제목 : 문의드립니다. > 아래 청산조건을 진입과 청산을 자동으로 할때와 진입(매수및 매도)은 제가 직접하고(수동) 매수청산 과 매도청산만 시스템으로 할때와 2가지로 부탁드립니다. 그리고 매도시스템식 수정좀부탁드립니다. =============================================================== 매수청산 조건 1) 음봉으로 5일선 하락 또는 20일선 하락시 2) 연속2음봉 발생시 3) 진입가 대비 8틱수익후 4틱밀리시 4) MACD SIG 데드크로시 발생시 매도청산 조건 1) 양봉으로 5일선 돌파 또는 20일선 돌파시 2) 연속2양봉 발생시 3) 진입가 대비 8틱수익후 4틱밀리시 4) MACD SIG 골든크로시 발생시 =========================================================== 아래 매도식을 참고로 약간 수정하려고 하는데 에레가 나와서 수정점 부탁드립니다. # 1) ~ 4) 진입은 볼린저 상단선과 중심선위에만 진입 해야함 1) 장대음봉이면서 볼린저 밴드 몇봉전 데드크로스 이거나 볼린저밴드 상단선 근처1.00~0.97내에서만 MACD SIG 데드크로시 또는 2) 장대음봉이면서 볼린저 밴드 몇봉전 데드크로스 이거나 볼린저밴드 상단선 근처1.00~0.97내에서만 5일선 데드크로시 또는 3) 연속2음봉이면서 볼린저 밴드 몇봉전 데드크로스 이거나 볼린저밴드 상단선 근처1.00~0.97내에서만 MACD SIG 데드크로시 또는 4) 연속2음봉이면서 볼린저 밴드 몇봉전 데드크로스 이거나 볼린저밴드 상단선 근처1.00~0.97내에서만 5일선 데드크로시 # 5)번~6번) 진입은 볼린저밴드 중심선과 하단선 위에 서만 5) 몇봉전에 MACD SIG 데드크로시가 있고 장대음봉으로 밴드 중심선 데드크로시 또는 6) 몇봉전에 MACD SIG 데드크로시가 있고 연속2음봉으로 밴드 중심선 데드크로시 # 7)번~8번) 진입은 볼린저밴드 하단선 아래에서만 7) 장대음봉으로 밴드 하단선 데드크로시 또는 8) 2음봉으로 밴드 하단선 데드크로시 1) ~ 8)번을 하나의 식으로 만들어주시돼 조건은 대도록 countif함수를 이용해서 만들어주세요. if BWidth >= BWidth[N]*(1+Per/100) And countif(CrossDown(MACDV,MACDS),3) >= 1 And countif(C <= O-PriceScale*P1 And C >= O-PriceScale*P2,1) >= 1 and countif(CrossDown(C,BBTOP),1) >= 1 and countif(CrossDown(c,ma(C,5)),1) >=1 and countif(c <= BBTop*1.00 And c >= BBTop*0.97 and CrossDown(C,BBTop),1) >=1 Then sell("s1",AtMarket); ================================================================================= 추신 ) 지난번 만들어 주신 MACD SIG 지표식을 차트에 드래그해서 적용하려고 하는데 드래그를 할수가 없게 되네요. 지표를 적용하면 수식에는 이상이 없다고 지표식은 만들어지는데 적용하면 선물차트 아래에 지표명만 나오고 표시없이 아무것도 없네요. 그리고 드래그로 올려지지도 않네요. 원래 만들어진 지표식은 드래그가 돼서 선물차트와 병용이 되는데 수식으로 작성한 지표들은 왜 안되나요...? 항상감사드립니다.