A. 저기 아래와 같은 매매방법으로 진입하고 청산할 때
제가 만든 시스템매매에서
1. 진입-----------(Onclose/AtMaket, Atstop, Atlimite중 어느 타입?)
2. 진입청산-----------(Onclose/AtMaket, Atstop, Atlimite중 어느 타입?)
3. 반대로 신규진입-----(Onclose/AtMaket, Atstop, Atlimite중 어느 타입?)
4. 익절-----------(Onclose/AtMaket, Atstop, Atlimite중 어느 타입?)
5. 손절-----------(Onclose/AtMaket, Atstop, Atlimite중 어느 타입?)
의 주문타입이 Onclose/AtMaket, Atstop, Atlimite 중 각각 무엇이라고 할 수
있는지요?
사용자 가격설정시 각각 다르게 설정할 수 있어서 분명하게 알고 싶습니다.
B. 첨부그림에서 보듯이
사용자설정에서 매수진입 현재가로 놓고 1틱하면 현재가에서 1틱 높여서 주문이 되고
사용자설정에서 매도진입 현재가로 놓고 -1틱하면 현재가에서 1틱 낮게 주문이
되는 것인지요?
예로 매수진입 신호가격이 250.00 이고 현재가가 250.00 이라면 250.05 에 매수주문
매도진입 신호가격이 250.00 이고 현재가가 250.00 이라면 249.95 에 매수주문
설정 방법 좀 알려주십시오.
--------------- 작성한 시스템 식 -------------------------
#당일 발생한 청산 중 최근청산이 손절이나 목표수익이면 true 아니면 false
Condition1 = ExitDate(1) == sdate and (IsExitName("StopLoss",1) == true or IsExitName("StopProfittarget",1) == true);
if count == 0 or (MarketPosition == 0 and Condition1 == false and BarsSinceExit(1) > 0) or MarketPosition != 0 then{
If (value6>1) and o<c then
buy("b1");
If (value6<-1) and o>c Then
Sell("s1");
}
if (MarketPosition == 0 and Condition1 == true and BarsSinceExit(1) > 0) or MarketPosition != 0 then{
if MarketPosition(1) == -1 and (value6>1) and o<c and Then
buy("b2");
if MarketPosition(1) == 1 and (value6<-1) and o>c Then
Sell("s2");
}
SetStopLoss(1.0,PointStop);
SetStopProfittarget(1.5,PointStop);
SetStopEndofday(150000);
답변 1
예스스탁
예스스탁 답변
2011-11-17 10:54:10
안녕하세요? 예스스탁입니다.
문의하신 내용 답변드립니다.
A. 먼저 두가지 개념을 명확히 구분해서 이해하셔야 할것 같습니다. 시스템식의 주문함수 안에서 사용하는 주문타입(Onclose/AtMaket, Atstop, Atlimite)은 '주문의 시점'에 관한 것입니다. onclose와 atmarket은 if문의 조건을 만족하고 다음봉 첫 시가 데이타가 들어올 때 주문이 나가는 주문타입이고, atstop과 atlimit은 if문의 조건을 만족한 다음봉에서 주문함수 안에서 지정해 놓은 가격에 상방 또는 하방으로 가격이 도달할때 주문이 나가는 내용입니다. 반면, 시스템 트레이딩 설정창의 매매가격에 있는 내용은 주문이 나갈때 어떤 가격으로 나갈지 결정하는 '주문의 가격'에 대한 설정입니다. 주문타입에 관해서는 아래 도움말을 참고해보시기 바랍니다.
https://www.yesstock.com/YesTrader/YesLanguage/YesLanguage_help/3_7_1_12_order.htm
올려 놓으신 식은 모두 onclose타입으로 작성된 식입니다. 주문함수 안에서 주문타입을 지정하지 않으면 onclose타입이됩니다. 다만, 강제청산은 예외입니다. 강제청산으로 손절청산, 목표수익청산, 당일청산을 사용하셨는데, 시스템 트레이딩 설정창의 강제청산 탭에서 하단에 '강제청산시점'을 '조건만족시 즉시'로 선택할 경우는 봉중간에 주문이 나가는 atstop형태로 주문이 나가게 되고, '봉완성시'로 선택할 경우는 봉이 완성되었을때 주문이 나가는 onclose형태로 주문이 나갑니다.
B. 매수진입 신호가격이 250.00 이고 현재가가 250.00 이라면 250.05 에 매수주문
매도진입 신호가격이 250.00 이고 현재가가 250.00 이라면 249.95 에 매도주문
이 방법으로 설정하라면 올려 놓으신 내용처럼 사용자가격설정에서 설정하는 방법도 있고,시스템 트레이딩 설정창의 '매매'탭 '매매가격'에서 현재가+-1호가로 설정하셔도 됩니다. '현재가+-1호가'로 설정하면 매수할때는 현재가보다 1틱 높은 가격, 매도할때는 현재가보다 1틱 낮은 가격으로 주문이 나갑니다.
한가지 주의할 점은 주문가격이 신호가격을 기준으로 하지 않고 신호가 확정된 시점의 현재가를 기준으로 한다는 점입니다. onclose타입의 경우 신호 발생봉의 종가가 신호 가격이 되는데, 주문가격은 신호 확정시점의 현재가를 기준으로 하므로 대부분 다음봉 시가가 기준이 될 것입니다.
감사합니다.
> 몸통공격 님이 쓴 글입니다.
> 제목 : 사용자설정
> A. 저기 아래와 같은 매매방법으로 진입하고 청산할 때
제가 만든 시스템매매에서
1. 진입-----------(Onclose/AtMaket, Atstop, Atlimite중 어느 타입?)
2. 진입청산-----------(Onclose/AtMaket, Atstop, Atlimite중 어느 타입?)
3. 반대로 신규진입-----(Onclose/AtMaket, Atstop, Atlimite중 어느 타입?)
4. 익절-----------(Onclose/AtMaket, Atstop, Atlimite중 어느 타입?)
5. 손절-----------(Onclose/AtMaket, Atstop, Atlimite중 어느 타입?)
의 주문타입이 Onclose/AtMaket, Atstop, Atlimite 중 각각 무엇이라고 할 수
있는지요?
사용자 가격설정시 각각 다르게 설정할 수 있어서 분명하게 알고 싶습니다.
B. 첨부그림에서 보듯이
사용자설정에서 매수진입 현재가로 놓고 1틱하면 현재가에서 1틱 높여서 주문이 되고
사용자설정에서 매도진입 현재가로 놓고 -1틱하면 현재가에서 1틱 낮게 주문이
되는 것인지요?
예로 매수진입 신호가격이 250.00 이고 현재가가 250.00 이라면 250.05 에 매수주문
매도진입 신호가격이 250.00 이고 현재가가 250.00 이라면 249.95 에 매수주문
설정 방법 좀 알려주십시오.
--------------- 작성한 시스템 식 -------------------------
#당일 발생한 청산 중 최근청산이 손절이나 목표수익이면 true 아니면 false
Condition1 = ExitDate(1) == sdate and (IsExitName("StopLoss",1) == true or IsExitName("StopProfittarget",1) == true);
if count == 0 or (MarketPosition == 0 and Condition1 == false and BarsSinceExit(1) > 0) or MarketPosition != 0 then{
If (value6>1) and o<c then
buy("b1");
If (value6<-1) and o>c Then
Sell("s1");
}
if (MarketPosition == 0 and Condition1 == true and BarsSinceExit(1) > 0) or MarketPosition != 0 then{
if MarketPosition(1) == -1 and (value6>1) and o<c and Then
buy("b2");
if MarketPosition(1) == 1 and (value6<-1) and o>c Then
Sell("s2");
}
SetStopLoss(1.0,PointStop);
SetStopProfittarget(1.5,PointStop);
SetStopEndofday(150000);