커뮤니티
너무 이상해요
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. 동원수산.JPG (0.07 MB)
답변 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);
이전글