커뮤니티
수식작성 부탁드립니다.
2010-10-19 19:59:45
1235
글번호 32935
수식작성을 부탁드려서 봤는데
시뮬레이션을 돌려보니 제가 원하는 게 아니더군요.
제가 전달을 잘못한 거 같습니다.
제가 원하는 바를 도식안이라고 그림판에 열심히 그렸습니다..ㅎㅎ
결론적으로 처음 이탈매수를 제외하고는 총2번까지만 피라미딩을 쌓도록 되어있습니다.
만약 주가가 떨어지지않고 상승추세를 계속 이어가준다면,
상승피라미딩만 쌓을 것이고,
한번이라도 value8을 하향한적이 있고 그 이후 상승추세를 이어갔다면 하락피라미딩을 한번 쌓고 상승피라미딩을 한번 쌓은 상태일 것입니다.
감사합니다!
- 1. 포지션 진입과 청산의 도식안.JPG (0.16 MB)
- 2. 현재의 식입니다..txt (0.00 MB)
답변 1
예스스탁 예스스탁 답변
2010-10-20 14:02:57
안녕하세요
예스스탁입니다.
input : 총투자금(4500000), period1(20);
var : L10(0),cnt(0),sum(0),count(0);
sum = 0;
for count = 1 to Period1{
sum = sum + max(abs(dayclose(count+1)-DayHigh(count)),abs(Dayclose(count+1)-DayLow(count)),abs(dayhigh(count)-daylow(count)));
}
value1 = sum/period1; #일간 20 ATR
value2 = int(총투자금*0.01)/(value1*3);
value6 = 167000; #박스권상단
value7 = 159400; #박스권귀속
value8 = 163000;
#전일 기준 10일 최저가
L10 = DayLow(1);
for cnt = 1 to 10{
if DayLow(cnt) < L10 Then
L10 = DayLow(cnt);
}
#1차
#value6 상향돌파때 매수
if MarketPosition == 0 and stime < 150000 and sdate >= 20100701 and ExitDate(1) != sdate Then{
if H <= value6 Then# 매수가격대 돌파시 매수.
buy("first박스권이탈매수",AtStop,value6+PriceScale,value2);
}
#2차
if MarketPosition == 1 Then{
#진입이 있을 때마다 value3에 value1저장 value4에 해당봉 고가저장
if CurrentEntries > CurrentEntries[1] Then{
value3 = value1;
value4 = H;
}
#첫번째 피라미딩
if CurrentEntries == 1 Then{
if H < value6+value1 Then
buy("b_1", AtStop, value6+value1);# value6+value1 이상에서 진입
if L > value8-PriceScale Then
buy("b_2", AtLimit, value8-PriceScale);#value8-한틱 아하에서 진입
}
#두번째 피라미딩
if CurrentEntries == 2 Then{
if countif(H >= value6+value1,BarsSinceEntry) >= 1 and H < value6+value1+value3 Then
buy("b_1_1", AtStop,value6+value1+value3);
if countif(H >= value6+value1,BarsSinceEntry) >= 1 and L > value8-PriceScale Then
buy("b_1_2", AtLimit,value8-PriceScale);
if countif(L <= value8-PriceScale,BarsSinceEntry) >= 1 and H < value6+value1 Then
buy("b_2_1", AtStop,value6+value1);
if countif(L <= value8-PriceScale,BarsSinceEntry) >= 1 and L > value6-value3*3 Then
ExitLong("B_2_X", AtStop,value6-value3*3);
}
}
#청산 포지션이 3번 누적이후에 발동
if MarketPosition == 1 and MaxEntries >= 3 Then{
if L >= L10-PriceScale Then# L7-PriceScale 위에 있다가 내려가면 청산입니다.
exitlong("신저가",AtStop,L10-PriceScale);
if L >= value4-value3*3 then # value4-value3*3 위에 있다가 내려가면 청산입니다.
exitlong("변동성",AtStop,value4-value3*3);
if L >= value6-value3*3 Then
exitlong("손실청산",atstop,value6-value3*3); #박스권하향하면 청산.
if L >= value7 Then
exitlong("박스권귀속",atstop,value7-pricescale); #박스권하향하면 청산.
}
즐거운 하루되세요
> 오벨 님이 쓴 글입니다.
> 제목 : 수식작성 부탁드립니다.
> 수식작성을 부탁드려서 봤는데
시뮬레이션을 돌려보니 제가 원하는 게 아니더군요.
제가 전달을 잘못한 거 같습니다.
제가 원하는 바를 도식안이라고 그림판에 열심히 그렸습니다..ㅎㅎ
결론적으로 처음 이탈매수를 제외하고는 총2번까지만 피라미딩을 쌓도록 되어있습니다.
만약 주가가 떨어지지않고 상승추세를 계속 이어가준다면,
상승피라미딩만 쌓을 것이고,
한번이라도 value8을 하향한적이 있고 그 이후 상승추세를 이어갔다면 하락피라미딩을 한번 쌓고 상승피라미딩을 한번 쌓은 상태일 것입니다.
감사합니다!