// 단기 모멘텀 이용 단타매매용 (이익 실현과 손절)
// 상한과 하한 벗어날 때 이익 실현없이 손절만
// 첫 매수든 매도든 한번만 하고 끝내는 방법은?
주문을 위한 식을 만들고 있습니다. 여기서 첫 주문이 매수나 매도가 되면 그것으로 일회성으로 끝나고 매수 다음에 매도나 매도 다음에 매수가 나오지 않도록 하려고 합니다. 즉 매수나 매도 한 쪽만 쓰려고 합니다.
어떻게 하면 좋을까요? 바쁘신 중에 귀찮게 해드려서 죄송합니다.
Input: Spread(1),Highv(2), Lowv(3);
If Crossup(c, Highv) Then Buy("B", OnClose);
If MarketPosition==1 and CrossUp(c, Highv+Spread) Then ExitLong("BProfit", OnClose);
If MarketPosition==1 and CrossDown(c, Lowv-0.1) Then ExitLong("LossCut1", OnClose);
If CrossDown(c, Lowv) Then Sell("S", OnClose);
If MarketPosition==-1 and CrossDown(c, Lowv-Spread) Then ExitShort("SProfit", OnClose);
If MarketPosition==-1 and CrossUp(c, Highv+0.1) Then ExitShort("LossCut2", OnClose);
답변 1
예스스탁
예스스탁 답변
2021-12-23 13:18:04
안녕하세요
예스스탁입니다.
진입을 1회만 해야 하는데 어떤 기간 기준인지 알수 없습니다.
당일진입을 처음만족한 진입조건으로 1회만 하게 수정해 드립니다.
Input: Spread(1),Highv(2), Lowv(3),당일진입횟수(1);
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 entry < 당일진입횟수 and Crossup(c, Highv) Then Buy("B", OnClose);
If MarketPosition==1 and CrossUp(c, Highv+Spread) Then ExitLong("BProfit", OnClose);
If MarketPosition==1 and CrossDown(c, Lowv-0.1) Then ExitLong("LossCut1", OnClose);
If entry < 당일진입횟수 and CrossDown(c, Lowv) Then Sell("S", OnClose);
If MarketPosition==-1 and CrossDown(c, Lowv-Spread) Then ExitShort("SProfit", OnClose);
If MarketPosition==-1 and CrossUp(c, Highv+0.1) Then ExitShort("LossCut2", OnClose);
즐거운 하루되세요
> hunter33 님이 쓴 글입니다.
> 제목 : 수식 좀 봐주시면 감사하겠습니다
> // 단기 모멘텀 이용 단타매매용 (이익 실현과 손절)
// 상한과 하한 벗어날 때 이익 실현없이 손절만
// 첫 매수든 매도든 한번만 하고 끝내는 방법은?
주문을 위한 식을 만들고 있습니다. 여기서 첫 주문이 매수나 매도가 되면 그것으로 일회성으로 끝나고 매수 다음에 매도나 매도 다음에 매수가 나오지 않도록 하려고 합니다. 즉 매수나 매도 한 쪽만 쓰려고 합니다.
어떻게 하면 좋을까요? 바쁘신 중에 귀찮게 해드려서 죄송합니다.
Input: Spread(1),Highv(2), Lowv(3);
If Crossup(c, Highv) Then Buy("B", OnClose);
If MarketPosition==1 and CrossUp(c, Highv+Spread) Then ExitLong("BProfit", OnClose);
If MarketPosition==1 and CrossDown(c, Lowv-0.1) Then ExitLong("LossCut1", OnClose);
If CrossDown(c, Lowv) Then Sell("S", OnClose);
If MarketPosition==-1 and CrossDown(c, Lowv-Spread) Then ExitShort("SProfit", OnClose);
If MarketPosition==-1 and CrossUp(c, Highv+0.1) Then ExitShort("LossCut2", OnClose);