커뮤니티

너무 이상해요

프로필 이미지
블랙홀999
2011-09-06 14:17:12
654
글번호 42519
답변완료

첨부 이미지

그림처럼 수식대로 하면 전고점인 AA를 돌파할때 (AA-2호가)오는 시점에 매수한다가 맞죠? (AA-1)이나 (AA-2)를 하면 매수신호 두번째인 "b3"에서 신호가 나오거든요 그런데 (AA-3)이나 그 밑으로 하면 신호가 안나와요 왜 그렇지요 분명 AA에서 3호가 밑에 오는 시점에 매수가 들어가야 정상지 않나요 제가 이해가 가지 않아서인데요 주문하고자 하는 값은 AA를 돌파하면 AA와 CC점의 중간값에서 매수를 하고 싶습니다. buy("b3",Atlimit,AA-PriceScale*3)를 사용하지 않고 buy("b3",Atlimit,((AA-CC)/2)+CC)하면 중간값이 되지 않나요? 그런데 그렇게 하면 신호가 잡히지 않거든요 AA-PriceScale로 해야만이 신호가 잡혀요 이것이 이해가 안돼요... 님께 적당한 수식 좀 부탁할께요 AA와 CC점의 중간값이 오면 매수하여라 수신은 아래와 같습니다. var : AA(0),BB(0),CC(0); if dayindex >= 2 and Condition1 == false Then{ if H[2] <= H[1] and H[1] > H Then{ AA = H[1]; BB = daylow[2]; CC = L; Condition1 = true; } if H[2] > H[1] and H[1] > H and L[1] > L[2] and L > L[2] Then{ AA = H[1]; BB = daylow; CC = L; Condition1 = true; } } if MarketPosition == 1 or dayindex == 0 Then Condition1 = false; if Condition1 == true and stime < 150000 Then{ if L < CC Then CC = L; if L < BB Then Condition1 = false; if AA <= CC*1.0159 Then buy("b1",AtStop,AA+PriceScale); if ((AA > CC*1.016) and (AA < CC*1.0239)) and (H >AA) Then buy("b2",Atlimit,AA+PriceScale); if ((AA > CC*1.024) and (AA < CC*1.0299)) and (H >AA) Then buy("b3",Atlimit,AA-PriceScale*2); if (AA > CC*1.03) and (AA < CC*1.06) and (H >AA) Then buy("b4",Atlimit,AA-PriceScale*1); } if MarketPosition == 1 Then exitlong("bx",AtStop,CC[BarsSinceEntry]-PriceScale*1);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-09-06 17:21:34

안녕하세요 예스스탁입니다. PriceScale*3으로 하면 신호가 안나오는 이유는 b3의 if문 조건때문에 그렇습니다. buy에 atlimit을 사용하면 지정된 가격 이하의 시세가 발생하면 무조건 신호가 발생하므로 if조건에 H > AA라는 조건을 추가해서 현재봉의 고가가 AA보다 한틱이라도 큰봉이 발생하고 다음봉이 AA-PriceScale*2 이하의 시세가 발생하면 신호가 나오게끔 했는데 동원수산에 11시 30분봉을 보시면 해당봉의 고가가 AA값하고 같습니다. 그러므로 H > AA라는 보건에 위배되므로 신호가 발생하지 않은 것입니다. 수식을 조금 수정했습니다. 현재봉이 아닌 AA이후의 최고가가 AA보다 큰 값이 한번이라도 발생했다면 지정된 가격 이하의 시세가 발생하면 신호 발생하게끔 했습니다. var : AA(0),BB(0),CC(0),FF(0); if dayindex >= 2 and Condition1 == false Then{ if H[2] <= H[1] and H[1] > H Then{ AA = H[1]; BB = daylow[2]; CC = L; Condition1 = true; FF = H; } if H[2] > H[1] and H[1] > H and L[1] > L[2] and L > L[2] Then{ AA = H[1]; BB = daylow; CC = L; Condition1 = true; FF = H; } } if MarketPosition == 1 or dayindex == 0 Then Condition1 = false; if Condition1 == true and stime < 150000 Then{ if L < CC Then CC = L; if H > FF Then FF = H; if L < BB Then Condition1 = false; if AA <= CC*1.0159 Then buy("b1",AtStop,AA+PriceScale); if ((AA > CC*1.016) and (AA < CC*1.0239)) and (FF > AA) Then buy("b2",Atlimit,AA+PriceScale); if ((AA > CC*1.024) and (AA < CC*1.0299)) and (FF > AA) Then buy("b3",Atlimit,AA-PriceScale*3); if (AA > CC*1.03) and (AA < CC*1.06) and (FF >AA) Then buy("b4",Atlimit,AA-PriceScale*1); } if MarketPosition == 1 Then exitlong("bx",AtStop,CC[BarsSinceEntry]-PriceScale*1); 수정한 식에 b3의 값으로 ((AA-CC)/2)+CC로 지정하셔도 신호가 발생합니다. 즐거운 하루되세요 > 블랙홀999 님이 쓴 글입니다. > 제목 : 너무 이상해요 > 그림처럼 수식대로 하면 전고점인 AA를 돌파할때 (AA-2호가)오는 시점에 매수한다가 맞죠? (AA-1)이나 (AA-2)를 하면 매수신호 두번째인 "b3"에서 신호가 나오거든요 그런데 (AA-3)이나 그 밑으로 하면 신호가 안나와요 왜 그렇지요 분명 AA에서 3호가 밑에 오는 시점에 매수가 들어가야 정상지 않나요 제가 이해가 가지 않아서인데요 주문하고자 하는 값은 AA를 돌파하면 AA와 CC점의 중간값에서 매수를 하고 싶습니다. buy("b3",Atlimit,AA-PriceScale*3)를 사용하지 않고 buy("b3",Atlimit,((AA-CC)/2)+CC)하면 중간값이 되지 않나요? 그런데 그렇게 하면 신호가 잡히지 않거든요 AA-PriceScale로 해야만이 신호가 잡혀요 이것이 이해가 안돼요... 님께 적당한 수식 좀 부탁할께요 AA와 CC점의 중간값이 오면 매수하여라 수신은 아래와 같습니다. var : AA(0),BB(0),CC(0); if dayindex >= 2 and Condition1 == false Then{ if H[2] <= H[1] and H[1] > H Then{ AA = H[1]; BB = daylow[2]; CC = L; Condition1 = true; } if H[2] > H[1] and H[1] > H and L[1] > L[2] and L > L[2] Then{ AA = H[1]; BB = daylow; CC = L; Condition1 = true; } } if MarketPosition == 1 or dayindex == 0 Then Condition1 = false; if Condition1 == true and stime < 150000 Then{ if L < CC Then CC = L; if L < BB Then Condition1 = false; if AA <= CC*1.0159 Then buy("b1",AtStop,AA+PriceScale); if ((AA > CC*1.016) and (AA < CC*1.0239)) and (H >AA) Then buy("b2",Atlimit,AA+PriceScale); if ((AA > CC*1.024) and (AA < CC*1.0299)) and (H >AA) Then buy("b3",Atlimit,AA-PriceScale*2); if (AA > CC*1.03) and (AA < CC*1.06) and (H >AA) Then buy("b4",Atlimit,AA-PriceScale*1); } if MarketPosition == 1 Then exitlong("bx",AtStop,CC[BarsSinceEntry]-PriceScale*1);