커뮤니티
한가지 더부탁드립니다
2014-07-11 20:00:46
148
글번호 76656
Inputs: RangeLen(7), RngPcnt(200), ATRs(8), ATRLen(2),BuyVol(5),SellVol(1);
Variables: RangeH(0), RangeL(0), TRange(0), ATR(0), NoTrades(0), LongRisk(0), LongHigh(0), ShortRisk(0), ShortLow(0);
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 Condition3 AND MarketPosition <> 1 Then Begin
Buy("매수",OnClose,def,BuyVol);
LongRisk = RangeL;
LongHigh = High;
End;
#Short Entry
If 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;
이식에서 하루에 딱 한번 매매하게 해주세요 감사합니다
답변 1
예스스탁 예스스탁 답변
2014-07-14 10:32:40
안녕하세요
예스스탁입니다.
Inputs: RangeLen(7), RngPcnt(200), ATRs(8), ATRLen(2),BuyVol(5),SellVol(1),DayEntry(1);
Var : 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 and count < DayEntry Then Begin
#Long Entry
If Condition3 AND MarketPosition <> 1 Then Begin
Buy("매수",OnClose,def,BuyVol);
LongRisk = RangeL;
LongHigh = High;
End;
#Short Entry
If 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;
즐거운 하루되세요
> 난다긴다 님이 쓴 글입니다.
> 제목 : 한가지 더부탁드립니다
> Inputs: RangeLen(7), RngPcnt(200), ATRs(8), ATRLen(2),BuyVol(5),SellVol(1);
Variables: RangeH(0), RangeL(0), TRange(0), ATR(0), NoTrades(0), LongRisk(0), LongHigh(0), ShortRisk(0), ShortLow(0);
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 Condition3 AND MarketPosition <> 1 Then Begin
Buy("매수",OnClose,def,BuyVol);
LongRisk = RangeL;
LongHigh = High;
End;
#Short Entry
If 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;
이식에서 하루에 딱 한번 매매하게 해주세요 감사합니다
다음글
이전글