커뮤니티

문의 드립니다.

프로필 이미지
wjfwp
2013-05-20 11:05:33
210
글번호 63349
답변완료
청산 조건문을 문의드립니다. 자세한 답변 미리 감사드립니다. 1. 볼린저밴드에서 %b값이 100이상을 터치한 후 시그널선이 %b선을 crossdown시 매도 진입하고, 매도 진입 직후 5개봉중 4개봉이 양봉일 시 손절하려고 합니다. if marketposition == -1 then if countif(c>o,5) >= 4 then exitshort(); 라고 식을 작성하였더니, 매도 진입전에 있었던 양봉도 함께 카운팅하여 손절 처리하더군요. 매도 진입 직후 5개봉을 카운팅하여 손절 처리했으면 합니다. (매도 진입이후 연속된 5개봉이 아니라, barssinceEntry 5개봉 입니다) 2. 매수(매도)후 바로 아래에 있는 이평선으로 지지선을 설정하고 지지선을 하향 돌파할 때 매수 건을 손절 청산하고자 합니다. 이평선은 30, 60, 90, 120, 150, 180, 210 등 일정 간격을 두고 구획합니다. 매수한 봉의 위치가 30선과 60선 사이에 위치할 때는 60선을 지지선으로 설정하고, 현재봉과 전봉이 음봉으로 두봉 연속하여 60선 이평선을 하향 돌파할 때 손절 청산하는 방법입니다. 매수한 봉의 위치가 120선과 150선 사이에 위치할 때는 150선을 지지선으로 설정하고, 두봉 모두 음봉으로 150선을 연속 하향 돌파할 때 손절 청산합니다. 3. 매수후 최고가가 (매수가 + 1포인트) ~ (매수가 + 2포인트) 사이에 있으면 (매수가격 + 0.15포인트)를 청산가격으로 지정하고, 이후 종가가 (매수가 + 2포인트)를 넘어서면 현재가가 (최고가 - 1.0포인트)에 도달할 때 익절하고자 합니다. 수식 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-05-20 20:41:02

안녕하세요 예스스탁입니다. 1. Input : Period(20), D(2),sig(20); var : BBdown(0),BBUp(0),BandB(0),signal(0); BBDown = BollBandDown(Period,D); BBUp = BollBandUp(Period,D); BandB = ((C-BBDown)/(BBUp-BBDown))*100; signal = ema(BandB,sig); if BandB >= 100 and CrossDown(signal,BandB) Then sell(); if MarketPosition == -1 and BarsSinceEntry >= 5 and countif(C>O,5)>=4 Then ExitShort(); 2. var : cnt(0),HH(0),Hi(0),LL(0),Li(0); Array : mav[8](0),Hmav[8](0),Hmai[8](0),Lmav[8](0),Lmai[8](0); mav[1] = ma(c,30); mav[2] = ma(c,60); mav[3] = ma(c,90); mav[4] = ma(c,120); mav[5] = ma(c,150); mav[6] = ma(c,180); mav[7] = ma(c,210); for cnt = 1 to 7{ if mav[cnt] > C Then{ Hmav[cnt] = mav[cnt]; Hmai[cnt] = cnt; } Else{ Hmav[cnt] = 9999999; Hmai[cnt] = cnt; } if mav[cnt] < C Then{ Lmav[cnt] = mav[cnt]; Lmai[cnt] = cnt; } Else{ Lmav[cnt] = -1; Lmai[cnt] = cnt; } } HH = 9999999; HI = -1; LL = -1; LI = -1; for cnt = 1 to 7{ if Hmav[cnt] < HH Then{ HH = Hmav[cnt]; Hi = Hmai[cnt]; } if Lmav[cnt] > LL Then{ LL = Lmav[cnt]; Li = Lmai[cnt]; } } if sdate == 20130520 and stime == 113000 Then buy(); if MarketPosition == 1 Then{ if MarketPosition[1] != 1 Then{ var1 = HI[1]; var2 = LI[1]; } if var2 != -1 Then{ value1 = mav[var2]; if BarsSinceEntry >= 2 and C < O and C[1] < O[1] and C < value1 and C[1] < value1[1] Then exitlong(); } } 3. if MarketPosition == 1 Then{ var1 = highest(H,BarsSinceEntry); if var1 >= EntryPrice+1 and var1 < EntryPrice+2 Then exitlong("bx1",AtStop,EntryPrice+0.15); if var1 >= EntryPrice+2 Then exitlong("bx2",AtStop,EntryPrice+1.0); } 즐거운 하루되세요 > wjfwp 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 청산 조건문을 문의드립니다. 자세한 답변 미리 감사드립니다. 1. 볼린저밴드에서 %b값이 100이상을 터치한 후 시그널선이 %b선을 crossdown시 매도 진입하고, 매도 진입 직후 5개봉중 4개봉이 양봉일 시 손절하려고 합니다. if marketposition == -1 then if countif(c>o,5) >= 4 then exitshort(); 라고 식을 작성하였더니, 매도 진입전에 있었던 양봉도 함께 카운팅하여 손절 처리하더군요. 매도 진입 직후 5개봉을 카운팅하여 손절 처리했으면 합니다. (매도 진입이후 연속된 5개봉이 아니라, barssinceEntry 5개봉 입니다) 2. 매수(매도)후 바로 아래에 있는 이평선으로 지지선을 설정하고 지지선을 하향 돌파할 때 매수 건을 손절 청산하고자 합니다. 이평선은 30, 60, 90, 120, 150, 180, 210 등 일정 간격을 두고 구획합니다. 매수한 봉의 위치가 30선과 60선 사이에 위치할 때는 60선을 지지선으로 설정하고, 현재봉과 전봉이 음봉으로 두봉 연속하여 60선 이평선을 하향 돌파할 때 손절 청산하는 방법입니다. 매수한 봉의 위치가 120선과 150선 사이에 위치할 때는 150선을 지지선으로 설정하고, 두봉 모두 음봉으로 150선을 연속 하향 돌파할 때 손절 청산합니다. 3. 매수후 최고가가 (매수가 + 1포인트) ~ (매수가 + 2포인트) 사이에 있으면 (매수가격 + 0.15포인트)를 청산가격으로 지정하고, 이후 종가가 (매수가 + 2포인트)를 넘어서면 현재가가 (최고가 - 1.0포인트)에 도달할 때 익절하고자 합니다. 수식 부탁드립니다.