커뮤니티
문의
2015-12-19 15:24:26
119
글번호 93611
입력변수값은 생략 !!!!
아래식의 주석좀 부탁드립니다. 상세히좀
If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] < ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1
Then
{
If !(ExitName(1) == "StopProfitTarget" and
(EntryName(1) == "매수" or EntryName(1) == "매수2" or EntryName(1) == "매수3") and
MarketPosition == 0) Then
buy("매수",AtMarket); ###############여기에 2틱유리하게 진입하라는 수식을 넣는건가요?
}
If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] > ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1
Then
{
If !(ExitName(1) == "StopProfitTarget" and
(EntryName(1) == "매도" or EntryName(1) == "매도2" or EntryName(1) == "매도3") and
MarketPosition == 0) Then
sell("매도",AtMarket);
}
#SetStopProfittarget(목표청산1);
}
위식에서 sell 부분과 buy 부분에서 신호가 발생이 되어질때
실제포지션 진입은 신호발생값보다 2틱 낮게 진입하고싶습니다.
또는 위식대로 해서 발생된 진입신호가 예로 매수신호13.7 이다 하면 13.5에 매수진입
13.7에 차트에 신호가 나오겟지만 실제로는 13.5에 진입입니다.
매도면 13.7 신호 실제는 13.9에 매도진입
차트에 표시도 13.5에 신호가 나오게 하고싶고요
또 한가지는 장시작부터 오후6시까지는 위식대로 매수 매도 진입하고 오후 6시부터 장종료까지는 매수와 매도를 반대로
진입하고 싶어요
위식에서 누적총수익이 +50틱에 도달하면 더이상 진입하지안고 스톱(매매를 안하게)을 하게 해주세요
그런데 만약 50틱도달후 더이상 진입을 안햐면 다시 시작되는 시점은 언제부터인가요
다음날 장이 시작되야하나요 아니면 hts종료후 다시 시작하면되나요
답변 1
예스스탁 예스스탁 답변
2015-12-21 10:57:31
안녕하세요
예스스탁입니다.
1
수식안에서는 실제주문가격으로 지정하는 부분이 없습니다.
주문가격은 시스템 트레이딩 설정창의 매매탭에서
주문가격으로 지정하셔야 합니다.
주문가격에서 사용자가격설정으로 선택하고
설정창에서 매수는 주문유형은 지정가, 기준가격은 현재가, 증감(틱)은 -2틱
매도는 주문유형은 지정가, 기준가격은 현재가, 증감(틱)은 +2틱으로 지정하시면 됩니다
2
수정한 식입니다.
수식에서는 재적용시 초기화등은 구현가능하지 않습니다.
누적총수익은 당일수익으로 계산했습니다.
var : NP(0),pre(0),T(0),DayPl(0),Xcond(false);
#총손익
NP = NetProfit;
#장시작
#pre에 전영업일까지의 손익저장
#T는 1
#Xcond는 false
if bdate != bdate[1] Then{
Pre = NetProfit[1];
T = 1;
Xcond = false;
}
#18시되면 T는 -1
if stime == 180000 or (stime > 180000 and stime[1] < 180000) Then
T = -1;
#청산이 발생했는데 당일수익청산으로 끝나면 Xcond는 true
if TotalTrades > TotalTrades[1] and (IsExitName("dayBx",1) == true or IsExitName("DaySx",1) == true) Then
Xcond = true;
#당일손익(현재총손익-전영업일까지의 총손익)
daypl = NetProfit-pre;
if Xcond == false then{
If (T == 1 and #장시작후 18시까지
countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1 #P11이평상승
and (ma(C,ma_p12)[1] < ma(C,ma_p13)[1] #1봉전을 P12이평이 P13이평보다 작고
and ma(C,ma_p12) > ma(C,ma_p13)) #현재봉은 P12이평이 P13이평보다 큼
and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1 #P14이평 상승
and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1 #P15이평 상승
and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1 #P16이평 상승
and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1) #P17이평 상승
or
(T == -1 and #18시에서 장끝
countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1 #P11이평하락
and (ma(C,ma_p12)[1] > ma(C,ma_p13)[1] #1봉전을 P12이평이 P13이평보다 크고
and ma(C,ma_p12) < ma(C,ma_p13)) #현재봉은 P12이평이 P13이평보다 작음
and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1 #P14이평 하락
and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1 #P15이평 하락
and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1 #P16이평 하락
and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1) #P17이평 하락
Then
{
If !(ExitName(1) == "StopProfitTarget" and
(EntryName(1) == "매수" or EntryName(1) == "매수2" or EntryName(1) == "매수3") and
MarketPosition == 0) Then
#현재 무포지션이고 최근거래가 매수/매수2/매수3으로 진입해서 목표수익으로 청산된 경우가 아닐때만 진입
buy("매수",AtMarket);
}
If (T == 1 and #장시작후 18시까지
countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1 #P11이평하락
and (ma(C,ma_p12)[1] > ma(C,ma_p13)[1] #1봉전을 P12이평이 P13이평보다 크고
and ma(C,ma_p12) < ma(C,ma_p13)) #현재봉은 P12이평이 P13이평보다 작음
and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1 #P14이평 하락
and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1 #P15이평 하락
and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1 #P16이평 하락
and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1) #P17이평 하락
or
(T == -1 and #18시에서 장끝
countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1 #P11이평상승
and (ma(C,ma_p12)[1] < ma(C,ma_p13)[1] #1봉전을 P12이평이 P13이평보다 작고
and ma(C,ma_p12) > ma(C,ma_p13)) #현재봉은 P12이평이 P13이평보다 큼
and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1 #P14이평 상승
and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1 #P15이평 상승
and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1 #P16이평 상승
and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1) #P17이평 상승
Then
{
If !(ExitName(1) == "StopProfitTarget" and
(EntryName(1) == "매도" or EntryName(1) == "매도2" or EntryName(1) == "매도3") and
MarketPosition == 0) Then
#현재 무포지션이고 최근거래가 매도/매도2/매도3으로 진입해서 목표수익으로 청산된 경우가 아닐때만 진입
sell("매도",AtMarket);
}
#SetStopProfittarget(목표청산1);
}
#당일 50틱 누적수익을 달성하면 청산
if MarketPosition == 1 Then{
ExitLong("DayBx",AtLimit,EntryPrice+((PriceScale*50)-daypl));
}
if MarketPosition == -1 Then{
ExitShort("DaySx",AtLimit,EntryPrice-((PriceScale*50)-daypl) );
}
즐거운 하루되세요
> 자라도 님이 쓴 글입니다.
> 제목 : 문의
> 입력변수값은 생략 !!!!
아래식의 주석좀 부탁드립니다. 상세히좀
If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] < ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1
Then
{
If !(ExitName(1) == "StopProfitTarget" and
(EntryName(1) == "매수" or EntryName(1) == "매수2" or EntryName(1) == "매수3") and
MarketPosition == 0) Then
buy("매수",AtMarket); ###############여기에 2틱유리하게 진입하라는 수식을 넣는건가요?
}
If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] > ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1
Then
{
If !(ExitName(1) == "StopProfitTarget" and
(EntryName(1) == "매도" or EntryName(1) == "매도2" or EntryName(1) == "매도3") and
MarketPosition == 0) Then
sell("매도",AtMarket);
}
#SetStopProfittarget(목표청산1);
}
위식에서 sell 부분과 buy 부분에서 신호가 발생이 되어질때
실제포지션 진입은 신호발생값보다 2틱 낮게 진입하고싶습니다.
또는 위식대로 해서 발생된 진입신호가 예로 매수신호13.7 이다 하면 13.5에 매수진입
13.7에 차트에 신호가 나오겟지만 실제로는 13.5에 진입입니다.
매도면 13.7 신호 실제는 13.9에 매도진입
차트에 표시도 13.5에 신호가 나오게 하고싶고요
또 한가지는 장시작부터 오후6시까지는 위식대로 매수 매도 진입하고 오후 6시부터 장종료까지는 매수와 매도를 반대로
진입하고 싶어요
위식에서 누적총수익이 +50틱에 도달하면 더이상 진입하지안고 스톱(매매를 안하게)을 하게 해주세요
그런데 만약 50틱도달후 더이상 진입을 안햐면 다시 시작되는 시점은 언제부터인가요
다음날 장이 시작되야하나요 아니면 hts종료후 다시 시작하면되나요
다음글