커뮤니티

수식 좀 봐주시면 감사하겠습니다

프로필 이미지
hunter33
2021-12-23 11:05:01
797
글번호 154788
답변완료
// 단기 모멘텀 이용 단타매매용 (이익 실현과 손절) // 상한과 하한 벗어날 때 이익 실현없이 손절만 // 첫 매수든 매도든 한번만 하고 끝내는 방법은? 주문을 위한 식을 만들고 있습니다. 여기서 첫 주문이 매수나 매도가 되면 그것으로 일회성으로 끝나고 매수 다음에 매도나 매도 다음에 매수가 나오지 않도록 하려고 합니다. 즉 매수나 매도 한 쪽만 쓰려고 합니다. 어떻게 하면 좋을까요? 바쁘신 중에 귀찮게 해드려서 죄송합니다. 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);