커뮤니티
추가 문의드립니다.
2013-10-15 09:13:15
161
글번호 68470
먼저 지난번 정성껏 답변을 작성해주신데에 너무 감사드립니다.
이전에 답변해주신 수식을 1분봉차트에서 시험해보았습니다.
첫 봉에서 진입 주문은 잘 발생했는데 청산주문에 문제가 있습니다.
1
익절 손절여하에 관계없이 청산주문이 항상 진입한 봉이 완성되고
그 다음봉의 시가에서 발생합니다.
무엇이 문제인지 모르겠네요.
2
첫봉에서 진입주문이 발생한뒤 같은 첫봉에서 손절이나 익절조건이
맞았을경우 다음 봉이 아닌 첫봉에서 청산주문이 발생하도록 할 수 있을까요?
3
첫봉에서 감시를 발생시키기 위한 아래의 수식은 첫봉이 끝나면 더이상 영향을 미치지 않는 것인가요?
그리고 1분봉일 경우 stime == 151500으로 해줘야 하는게 맞는건가요?
If Marketposition == 0 and stime == 143000 then{
buy("b",AtStop,NextBarOpen+DayATR);
Sell("s",AtStop,NextBarOpen-DayATR);
}
미리 감사드립니다.
아래는 예전에 답변해주신 수식입니다.
------------------------------------------------------------
안녕하세요
예스스탁입니다.
atstop이나 atlimit은 최근완성봉에서 값을 셋팅하고
현재봉에서 해당 값 이상이나 이하의 시세가 발생하는지 체크하여
신호를 발생하게 됩니다.
당일 첫봉에서 if조건이 만족하면 다음봉인 두번째 봉부터 가격을 감시하게 됩니다.
첫봉에 신호를 발생하게 하려면
첫봉의 이전봉인 전일 마지막봉에 if문을 만족시켜
다음봉인 당일첫봉의 시세를 감시해 신호가 발생하게 해야 합니다.
차트가 1분봉이시면 선물이나 옵션은 15시 15분봉이 마지막봉입니다.
차트의 주기에 따라 마지막봉 시간이 다르므로 주의하시기 바랍니다.
input : ATRP(14),N(1);
var : TH(0),TL(0),Sum(0),TR(0),DayATR(0),cnt(0),count(0);
//당일 진입횟수
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
DayATR = 0.3;
If Marketposition == 0 and stime == 143000 then{
buy("b",AtStop,NextBarOpen+DayATR);
Sell("s",AtStop,NextBarOpen-DayATR);
}
If Marketposition == 0 and stime < 143000 and count < N then{
buy("buy",AtStop,dayopen+DayATR);
Sell("sell",AtStop,dayopen-DayATR);
}
if MarketPosition == 1 Then{
ExitLong("매수익절",AtStop,DayOpen+DayATR*4);
ExitLong("매수손절",AtStop,DayOpen-DayATR);
}
if MarketPosition == -1 Then{
ExitShort("매도익절",AtStop,DayOpen-DayATR*4);
ExitShort("매도손절",AtStop,DayOpen+DayATR);
}
SetStopEndofday(143000);
답변 1
예스스탁 예스스탁 답변
2013-10-15 17:32:30
안녕하세요
예스스탁입니다.
1.
주문타입이 반대로 되어 있었습니다. 수정했습니다.
2.
첫봉에 신호가 나올경우 첫봉에서만 동작하는 청산식을 추가했습니다.
3.
첫봉 신호발생 수식은 시간을 정확히 지정하셔야 합니다.
1분차트이면 차트의 마지막봉이
선물옵션일 경우 151500입니다.
주식종목일 경우 145900분입니다.
30분 차트는
선물옵션은 150000
주식종목도 150000입니다.
거래하고자 하는 차트를 여신후에
plot1(stime);
위 지표적용하셔서 시간확인하시고 지정하셔야 합니다.
4 수정/추가한 식입니다.
input : ATRP(14),N(1);
var : TH(0),TL(0),Sum(0),TR(0),DayATR(0),cnt(0),count(0);
//당일 진입횟수
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
DayATR = 0.3;
#첫봉 신호발생 수식
If Marketposition == 0 and stime == 143000 then{
buy("b",AtStop,NextBarOpen+DayATR);
ExitLong("첫봉매수익절",AtLimit,NextBarOpen+DayATR*4);
ExitLong("첫봉매수손절",AtStop,NextBarOpen-DayATR);
Sell("s",AtStop,NextBarOpen-DayATR);
ExitShort("첫봉매도익절",Atlimit,NextBarOpen-DayATR*4);
ExitShort("첫봉매도손절",AtStop,NextBarOpen+DayATR);
}
#두번째봉부터 신호발생 수식
If Marketposition == 0 and stime < 143000 and count < N then{
buy("buy",AtStop,dayopen+DayATR);
Sell("sell",AtStop,dayopen-DayATR);
}
if MarketPosition == 1 Then{
ExitLong("매수익절",AtLimit,DayOpen+DayATR*4);
ExitLong("매수손절",AtStop,DayOpen-DayATR);
}
if MarketPosition == -1 Then{
ExitShort("매도익절",Atlimit,DayOpen-DayATR*4);
ExitShort("매도손절",AtStop,DayOpen+DayATR);
}
SetStopEndofday(143000);
즐거운 하루되세요
> deepye 님이 쓴 글입니다.
> 제목 : 추가 문의드립니다.
> 먼저 지난번 정성껏 답변을 작성해주신데에 너무 감사드립니다.
이전에 답변해주신 수식을 1분봉차트에서 시험해보았습니다.
첫 봉에서 진입 주문은 잘 발생했는데 청산주문에 문제가 있습니다.
1
익절 손절여하에 관계없이 청산주문이 항상 진입한 봉이 완성되고
그 다음봉의 시가에서 발생합니다.
무엇이 문제인지 모르겠네요.
2
첫봉에서 진입주문이 발생한뒤 같은 첫봉에서 손절이나 익절조건이
맞았을경우 다음 봉이 아닌 첫봉에서 청산주문이 발생하도록 할 수 있을까요?
3
첫봉에서 감시를 발생시키기 위한 아래의 수식은 첫봉이 끝나면 더이상 영향을 미치지 않는 것인가요?
그리고 1분봉일 경우 stime == 151500으로 해줘야 하는게 맞는건가요?
If Marketposition == 0 and stime == 143000 then{
buy("b",AtStop,NextBarOpen+DayATR);
Sell("s",AtStop,NextBarOpen-DayATR);
}
미리 감사드립니다.
아래는 예전에 답변해주신 수식입니다.
------------------------------------------------------------
안녕하세요
예스스탁입니다.
atstop이나 atlimit은 최근완성봉에서 값을 셋팅하고
현재봉에서 해당 값 이상이나 이하의 시세가 발생하는지 체크하여
신호를 발생하게 됩니다.
당일 첫봉에서 if조건이 만족하면 다음봉인 두번째 봉부터 가격을 감시하게 됩니다.
첫봉에 신호를 발생하게 하려면
첫봉의 이전봉인 전일 마지막봉에 if문을 만족시켜
다음봉인 당일첫봉의 시세를 감시해 신호가 발생하게 해야 합니다.
차트가 1분봉이시면 선물이나 옵션은 15시 15분봉이 마지막봉입니다.
차트의 주기에 따라 마지막봉 시간이 다르므로 주의하시기 바랍니다.
input : ATRP(14),N(1);
var : TH(0),TL(0),Sum(0),TR(0),DayATR(0),cnt(0),count(0);
//당일 진입횟수
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
DayATR = 0.3;
If Marketposition == 0 and stime == 143000 then{
buy("b",AtStop,NextBarOpen+DayATR);
Sell("s",AtStop,NextBarOpen-DayATR);
}
If Marketposition == 0 and stime < 143000 and count < N then{
buy("buy",AtStop,dayopen+DayATR);
Sell("sell",AtStop,dayopen-DayATR);
}
if MarketPosition == 1 Then{
ExitLong("매수익절",AtStop,DayOpen+DayATR*4);
ExitLong("매수손절",AtStop,DayOpen-DayATR);
}
if MarketPosition == -1 Then{
ExitShort("매도익절",AtStop,DayOpen-DayATR*4);
ExitShort("매도손절",AtStop,DayOpen+DayATR);
}
SetStopEndofday(143000);