커뮤니티
매수시점과 또다른 조건문에 대해 질문드릴께요
2011-09-10 21:32:29
708
글번호 42614
항상 고맙습니다. 그리고 메리 추석입니다.
건강하세요
if문 다음에 매수주문을 할때에 AtStop은 봉이 완성된 다음봉의 시가에 매수주문이
이뤄진다고 했는데요
그러면 돌파한 시점에 곧바로 매수할 방법으로는 조건물을 빼면 된다는 건가요
예를들어서 전고점 AA를 뚫자마자 곧바로 한호가 위에서 매수를 하고 싶은데요
if (AA <= CC*1.015) and (BB > 하한가+PriceScale*2) Then
buy("b1",AtStop,AA+PriceScale);
이렇게 하면 전고점을 돌파한다면이라는 조건을 뺏으므로
AA를 돌파하는 시점이 매수포인트가 되니까 곧바로 매수가 되겠네요
제가 저번에 쓴 글처럼
FF를 전고점보다 큰 수로 가정하였을때
아래처럼
if AA <= CC*1.015 and (FF > AA) and BB > 하한가+PriceScale*2 Then
buy("b1",AtStop,AA+PriceScale);
이렇게 하면
전고점을 돌파하였으나 5분동안에 그 봉이 한참 올라있으면 그 다음봉 시가에 매수가
되니 이미 한참 올라 있을 확률이 있더라구요
두번째 질문입니다.
예전에 한번 쓴 글인데요 잘 안 맞는것 같아서 제가 생각해 봤는데요
조건1
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;
}
조건2
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;
조건1과 조건2를 만족하면 전고점이 된다고 했는데요 거기다가 조건3을 추가하여 그림
처럼 AA1의 전고점이 BB1을 깨고 그냥 하락하였는데 다시 그대로 쭉 돌파하여
AA2라는 전고점을 다시 만들었습니다.
그런데 조건1과 조건2만 하면 AA2를 새로운 전고점으로 인식하고 AA2를 돌파하면
매수시점을 찾게되거든요..
그래서 아래와같이 CC<BB라는 조건을 추가하면
if dayindex >= 2 and Condition1 == false Then{
if H[2] <= H[1] and H[1] > H and CC<BB 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] and CC<BB Then{
AA = H[1];
BB = daylow;
CC = L;
Condition1 = true;
FF = H;
}
이렇게 하니까 생각하였던 대로 AA1을 전고점으로 인식하지 못하더라구요
그 이유를 생각해보니 아래 전체적인 조건식 하단부에 들어가있는
if L < BB Then Condition1 = false; 때문일까요?
당일 저가가 BB보다 낮으면 조건식은 거짓이다라는 말 때문인것 같기도 한데 그런데
이 조건식을 빼면 또 이상하게 나와버려요
이것을 해결할 방법은 없을까요
조건3에다가 다른 방법을 추가해서 CC<BB라고 해도 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 (FF >= AA*1.1) or (BB < 1000)Then#FF가 AA대비 10%이상 크면 Condition1을 false로 함
Condition1 = false;
if AA <= CC*1.012099 and BB > 하한가+PriceScale Then
buy("b1",AtStop,AA+PriceScale);
if ((AA > CC*1.0121) and (AA < CC*1.01599)) and (FF > AA) and BB > 하한가+PriceScale Then
buy("b2",Atlimit,AA);
if ((AA > CC*1.016) and (AA < CC*1.021099)) and (FF > AA) and BB > 하한가+PriceScale Then
buy("b3",Atlimit,AA-PriceScale);
if ((AA > CC*1.0211) and (AA < CC*1.0249)) and (FF > AA) and BB > 하한가+PriceScale Then
buy("b4",Atlimit,(AA-CC)*0.66+CC);
if ((AA > CC*1.025) and (AA < CC*1.0299)) and (FF > AA) and BB > 하한가+PriceScale Then
buy("b5",Atlimit, (AA-CC)*0.5+CC);
if (AA > CC*1.03) and (AA < CC*1.055) and (FF >AA) and BB > 하한가+PriceScale Then
buy("b6",Atlimit,(AA-CC)*0.25+CC);
}
if MarketPosition == 1 Then
exitlong("bx",AtStop,CC[BarsSinceEntry]-PriceScale*1);
- 1. 42953_12.JPG (0.08 MB)
답변 1
예스스탁 예스스탁 답변
2011-09-14 13:29:33
안녕하세요
예스스탁입니다.
1.
atstop은 다음봉 시가에 매수가 아닙니다.
매수에서는 지정한 가격 이상의 시세가 발생하면 매수
매도에서는 지정한 가격 이하의 시세가 발생하면 매도입니다.
시가가 지정한 가격 이상이면 바로 매수가 뜨지만
시가가 그 이하이고 이후 가격이 올라 해당 값이상이되면 그때 매수신호 발생합니다
if문을 빼시면 해당 if문 조건과 관계없이
지정한 AA+PriceScale 이상이기만 하면 즉시 신호가 발생합니다.
2.
죄송합니다.
이후의 내용은 정확히 어떤 내용을 원하시는지 이해가 잘 오지 않습니다.
좀더 자세한 내용 올려주시기 바랍니다.
즐거운 하루되세요
> 블랙홀999 님이 쓴 글입니다.
> 제목 : 매수시점과 또다른 조건문에 대해 질문드릴께요
> 항상 고맙습니다. 그리고 메리 추석입니다.
건강하세요
if문 다음에 매수주문을 할때에 AtStop은 봉이 완성된 다음봉의 시가에 매수주문이
이뤄진다고 했는데요
그러면 돌파한 시점에 곧바로 매수할 방법으로는 조건물을 빼면 된다는 건가요
예를들어서 전고점 AA를 뚫자마자 곧바로 한호가 위에서 매수를 하고 싶은데요
if (AA <= CC*1.015) and (BB > 하한가+PriceScale*2) Then
buy("b1",AtStop,AA+PriceScale);
이렇게 하면 전고점을 돌파한다면이라는 조건을 뺏으므로
AA를 돌파하는 시점이 매수포인트가 되니까 곧바로 매수가 되겠네요
제가 저번에 쓴 글처럼
FF를 전고점보다 큰 수로 가정하였을때
아래처럼
if AA <= CC*1.015 and (FF > AA) and BB > 하한가+PriceScale*2 Then
buy("b1",AtStop,AA+PriceScale);
이렇게 하면
전고점을 돌파하였으나 5분동안에 그 봉이 한참 올라있으면 그 다음봉 시가에 매수가
되니 이미 한참 올라 있을 확률이 있더라구요
두번째 질문입니다.
예전에 한번 쓴 글인데요 잘 안 맞는것 같아서 제가 생각해 봤는데요
조건1
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;
}
조건2
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;
조건1과 조건2를 만족하면 전고점이 된다고 했는데요 거기다가 조건3을 추가하여 그림
처럼 AA1의 전고점이 BB1을 깨고 그냥 하락하였는데 다시 그대로 쭉 돌파하여
AA2라는 전고점을 다시 만들었습니다.
그런데 조건1과 조건2만 하면 AA2를 새로운 전고점으로 인식하고 AA2를 돌파하면
매수시점을 찾게되거든요..
그래서 아래와같이 CC<BB라는 조건을 추가하면
if dayindex >= 2 and Condition1 == false Then{
if H[2] <= H[1] and H[1] > H and CC<BB 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] and CC<BB Then{
AA = H[1];
BB = daylow;
CC = L;
Condition1 = true;
FF = H;
}
이렇게 하니까 생각하였던 대로 AA1을 전고점으로 인식하지 못하더라구요
그 이유를 생각해보니 아래 전체적인 조건식 하단부에 들어가있는
if L < BB Then Condition1 = false; 때문일까요?
당일 저가가 BB보다 낮으면 조건식은 거짓이다라는 말 때문인것 같기도 한데 그런데
이 조건식을 빼면 또 이상하게 나와버려요
이것을 해결할 방법은 없을까요
조건3에다가 다른 방법을 추가해서 CC<BB라고 해도 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 (FF >= AA*1.1) or (BB < 1000)Then#FF가 AA대비 10%이상 크면 Condition1을 false로 함
Condition1 = false;
if AA <= CC*1.012099 and BB > 하한가+PriceScale Then
buy("b1",AtStop,AA+PriceScale);
if ((AA > CC*1.0121) and (AA < CC*1.01599)) and (FF > AA) and BB > 하한가+PriceScale Then
buy("b2",Atlimit,AA);
if ((AA > CC*1.016) and (AA < CC*1.021099)) and (FF > AA) and BB > 하한가+PriceScale Then
buy("b3",Atlimit,AA-PriceScale);
if ((AA > CC*1.0211) and (AA < CC*1.0249)) and (FF > AA) and BB > 하한가+PriceScale Then
buy("b4",Atlimit,(AA-CC)*0.66+CC);
if ((AA > CC*1.025) and (AA < CC*1.0299)) and (FF > AA) and BB > 하한가+PriceScale Then
buy("b5",Atlimit, (AA-CC)*0.5+CC);
if (AA > CC*1.03) and (AA < CC*1.055) and (FF >AA) and BB > 하한가+PriceScale Then
buy("b6",Atlimit,(AA-CC)*0.25+CC);
}
if MarketPosition == 1 Then
exitlong("bx",AtStop,CC[BarsSinceEntry]-PriceScale*1);