커뮤니티
혹시 이런식도....
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% 손실이나면 바로 매수는 청산후 매도로 매도는 청산후 바로 매수로
가능하겠죠???? 감사합니다