항상 도움주셔 감사합니다.
아래와 같은 수식에서 매매횟수 제한을 추가하고싶습니다.
if nextbarsdate==sdate Then{
if Nextbaropen<=H Then
buy("b1",atstop,H);
Else
buy("b2",atlimit,H);
if nextbaropen<=L Then
sell("s1",atlimit,L);
Else
sell("s2",atstop,L);
}
setstopendofday(150000);
위의 식은 선물 당일청산 식인데,
당일 시작봉은 지켜보고, 2번째봉부터 전봉 고가를 터치하면 매수,
전봉 저가를 터치하면 매도하는 식입니다.
여기에 하루 매매횟수를 1회로 제한하고싶습니다.
즉, 예를들면 위의 식은
매수 신호와서 진입 한 뒤, 다음봉(혹은 현재봉)에서 다시 매도신호가 나온다면,
매수포지션 모두 청산후 매도포지션을 들어갑니다.
이렇게 하지말고 그냥 매수신호만 청산하고 더이상 그날은 재진입을 없게 하고 싶습니다.
만약 추세를 타서 첫 진입신호이후에 더이상 신호가 발생 안한다면 위 식대로 3시에 청산하고싶습니다. (위 식 그대로)
감사합니다.
답변 1
예스스탁
예스스탁 답변
2020-08-07 10:15:30
안녕하세요
예스스탁입니다.
올려주신 수식이 봉미완성시에 가격조건을 충족하면 즉시 신호가 발생하는 타입니다.
또한 한봉에서 매수진입과 매도진입이 모두 만족할수 있습니다.
진입의 제한은 if문에 조건으로 지정할 수 밖에 없는데
if문이 봉완성시에만 조건 체크가 되어
하나의 봉의 미완성시에 매수와 매도가 모두 진입하는 것을 막을 수 없습니다.
하나의 봉에서 한번만 발생하게 하기 위해서는
동시에 매수와 매도가 셋팅되지 않는 조건을 추가해 주셔야 합니다.
아래식에는 시가가 저가보다 고가에 가까우면 매수만, 저가에 더 가까우면 매도만 셋팅되어
진입되게 했습니다.
var : entry(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if nextbarsdate==sdate and entry < 1 Then
{
if abs(H-NextBarOpen) < abs(L-NextBarOpen) Then
{
if Nextbaropen <= H Then
buy("b1",atstop,H);
Else
buy("b2",atlimit,H);
}
Else
{
if nextbaropen <= L Then
sell("s1",atlimit,L);
Else
sell("s2",atstop,L);
}
}
setstopendofday(150000);
즐거운 하루되세요
> dragongo 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 항상 도움주셔 감사합니다.
아래와 같은 수식에서 매매횟수 제한을 추가하고싶습니다.
if nextbarsdate==sdate Then{
if Nextbaropen<=H Then
buy("b1",atstop,H);
Else
buy("b2",atlimit,H);
if nextbaropen<=L Then
sell("s1",atlimit,L);
Else
sell("s2",atstop,L);
}
setstopendofday(150000);
위의 식은 선물 당일청산 식인데,
당일 시작봉은 지켜보고, 2번째봉부터 전봉 고가를 터치하면 매수,
전봉 저가를 터치하면 매도하는 식입니다.
여기에 하루 매매횟수를 1회로 제한하고싶습니다.
즉, 예를들면 위의 식은
매수 신호와서 진입 한 뒤, 다음봉(혹은 현재봉)에서 다시 매도신호가 나온다면,
매수포지션 모두 청산후 매도포지션을 들어갑니다.
이렇게 하지말고 그냥 매수신호만 청산하고 더이상 그날은 재진입을 없게 하고 싶습니다.
만약 추세를 타서 첫 진입신호이후에 더이상 신호가 발생 안한다면 위 식대로 3시에 청산하고싶습니다. (위 식 그대로)
감사합니다.