커뮤니티

혹시 이런식도....

프로필 이미지
난다긴다
2014-07-18 13:31:01
230
글번호 76877
답변완료
Inputs: RangeLen(7), RngPcnt(200), ATRs(8), ATRLen(2),BuyVol(5),SellVol(0),당일진입횟수(1); Variables: RangeH(0), RangeL(0), TRange(0), ATR(0), NoTrades(0), LongRisk(0), LongHigh(0), ShortRisk(0), ShortLow(0); var : cnt(0),count(0);# count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; }# RangeH = Highest(High, RangeLen)[1]; RangeL = Lowest(Low, RangeLen)[1]; TRange = RangeH - RangeL; ATR = ATR(ATRLen); NoTrades = 0; For value1 = 1 To RangeLen Begin If High[value1] < RangeH Then NoTrades = NoTrades + (RangeH - High[value1]); If Low[value1] > RangeL Then NoTrades = NoTrades + (Low[value1] - RangeL); End; Condition1 = NoTrades >= TRange * (RngPcnt / 100); Condition2 = TrueRange > ATR(RangeLen)[1]; Condition3 = Close > RangeH AND MedianPrice > High[1]; Condition4 = Close < RangeL AND MedianPrice < Low[1]; If Condition1 AND Condition2 Then Begin #Long Entry If count < 당일진입횟수 and Condition3 AND MarketPosition <> 1 Then Begin # Buy("매수",OnClose,def,BuyVol); LongRisk = RangeL; LongHigh = High; End; #Short Entry If count < 당일진입횟수 and Condition4 AND MarketPosition <> -1 Then Begin # Sell("매도",OnClose,def,SellVol); ShortRisk = RangeH; ShortLow = Low; End; End; #Long Exit If MarketPosition == 1 Then Begin If High > LongHigh Then LongHigh = High; ExitLong("매도1",atstop,LongRisk - 1); ExitLong("매도2",atstop,LongHigh - (ATRs * ATR)); End; #Short Exit If MarketPosition == -1 Then Begin If Low < ShortLow Then ShortLow = Low; ExitShort("매도3",atstop,ShortRisk + 1); ExitShort("매도4",atstop,ShortLow + (ATRs * ATR)); End; SetStopEndofday(1500); SetStopPosition; SetStopLoss(5,PercentStop); 여기서 손실이 5% 손실이나면 바로 매수는 청산후 매도로 매도는 청산후 바로 매수로 가능하겠죠???? 감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-07-18 18:33:02

안녕하세요 예스스탁입니다. Inputs: RangeLen(7), RngPcnt(200), ATRs(8), ATRLen(2),BuyVol(5),SellVol(0),당일진입횟수(1); Variables: RangeH(0), RangeL(0), TRange(0), ATR(0), NoTrades(0), LongRisk(0), LongHigh(0), ShortRisk(0), ShortLow(0); var : cnt(0),count(0);# count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; }# RangeH = Highest(High, RangeLen)[1]; RangeL = Lowest(Low, RangeLen)[1]; TRange = RangeH - RangeL; ATR = ATR(ATRLen); NoTrades = 0; For value1 = 1 To RangeLen Begin If High[value1] < RangeH Then NoTrades = NoTrades + (RangeH - High[value1]); If Low[value1] > RangeL Then NoTrades = NoTrades + (Low[value1] - RangeL); End; Condition1 = NoTrades >= TRange * (RngPcnt / 100); Condition2 = TrueRange > ATR(RangeLen)[1]; Condition3 = Close > RangeH AND MedianPrice > High[1]; Condition4 = Close < RangeL AND MedianPrice < Low[1]; If Condition1 AND Condition2 Then Begin #Long Entry If count < 당일진입횟수 and Condition3 AND MarketPosition <> 1 Then Begin # Buy("매수",OnClose,def,BuyVol); LongRisk = RangeL; LongHigh = High; End; #Short Entry If count < 당일진입횟수 and Condition4 AND MarketPosition <> -1 Then Begin # Sell("매도",OnClose,def,SellVol); ShortRisk = RangeH; ShortLow = Low; End; End; #Long Exit If MarketPosition == 1 Then Begin If High > LongHigh Then LongHigh = High; ExitLong("매도1",atstop,LongRisk - 1); ExitLong("매도2",atstop,LongHigh - (ATRs * ATR)); End; #Short Exit If MarketPosition == -1 Then Begin If Low < ShortLow Then ShortLow = Low; ExitShort("매도3",atstop,ShortRisk + 1); ExitShort("매도4",atstop,ShortLow + (ATRs * ATR)); End; SetStopEndofday(1500); #매수진입후 5% 손실나면 매도로 스위칭 if MarketPosition == 1 Then sell("BS",AtStop,EntryPrice*0.95); #매도진입후 5% 손실나면 매수로 스위칭 if MarketPosition == -1 Then Buy("SB",AtStop,EntryPrice*1.05); 즐거운 하루되세요 > 난다긴다 님이 쓴 글입니다. > 제목 : 혹시 이런식도.... > Inputs: RangeLen(7), RngPcnt(200), ATRs(8), ATRLen(2),BuyVol(5),SellVol(0),당일진입횟수(1); Variables: RangeH(0), RangeL(0), TRange(0), ATR(0), NoTrades(0), LongRisk(0), LongHigh(0), ShortRisk(0), ShortLow(0); var : cnt(0),count(0);# count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; }# RangeH = Highest(High, RangeLen)[1]; RangeL = Lowest(Low, RangeLen)[1]; TRange = RangeH - RangeL; ATR = ATR(ATRLen); NoTrades = 0; For value1 = 1 To RangeLen Begin If High[value1] < RangeH Then NoTrades = NoTrades + (RangeH - High[value1]); If Low[value1] > RangeL Then NoTrades = NoTrades + (Low[value1] - RangeL); End; Condition1 = NoTrades >= TRange * (RngPcnt / 100); Condition2 = TrueRange > ATR(RangeLen)[1]; Condition3 = Close > RangeH AND MedianPrice > High[1]; Condition4 = Close < RangeL AND MedianPrice < Low[1]; If Condition1 AND Condition2 Then Begin #Long Entry If count < 당일진입횟수 and Condition3 AND MarketPosition <> 1 Then Begin # Buy("매수",OnClose,def,BuyVol); LongRisk = RangeL; LongHigh = High; End; #Short Entry If count < 당일진입횟수 and Condition4 AND MarketPosition <> -1 Then Begin # Sell("매도",OnClose,def,SellVol); ShortRisk = RangeH; ShortLow = Low; End; End; #Long Exit If MarketPosition == 1 Then Begin If High > LongHigh Then LongHigh = High; ExitLong("매도1",atstop,LongRisk - 1); ExitLong("매도2",atstop,LongHigh - (ATRs * ATR)); End; #Short Exit If MarketPosition == -1 Then Begin If Low < ShortLow Then ShortLow = Low; ExitShort("매도3",atstop,ShortRisk + 1); ExitShort("매도4",atstop,ShortLow + (ATRs * ATR)); End; SetStopEndofday(1500); SetStopPosition; SetStopLoss(5,PercentStop); 여기서 손실이 5% 손실이나면 바로 매수는 청산후 매도로 매도는 청산후 바로 매수로 가능하겠죠???? 감사합니다