커뮤니티
청산식 관련
2010-03-24 00:12:58
606
글번호 28861
아래와 같은 수식의 데이 시스템에서 마지막 포지션 청산결과
당일수익(dayPL)이 손실인 경우...
dayPL 만큼의 수익이 발생하면 청산하는 수식을 작성해주세요.
예를들어 dayPL 이 현재까지 -1.3 이라면,
롱진입은 EntryPrice+1.3 청산
숏진입은 EntryPrice-1.3 청산하면 되겠지요.
dayPL을 청산수식에 어떻게 활용해야할지 모르겠네요.
-------------------------------------------------------------------
input : entrycnt(50);
var : cnt(0),count(0);
var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0);
XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정
XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정
PLR = 0;
count = 0;
for var1 = 1 to 100{
if sdate == EntryDate(var1) Then{
PLR = PLR+PositionProfit(var1);
}
}
if MarketPosition() == 0 Then{
OpenPL = 0;
dayPL = PLR;
}
Else{
OpenPL = (PositionProfit-(XCommission+XSlippage));
dayPL = PLR+OpenPL;
}
count = 0;
for cnt = 0 to 50{
if sDate == EntryDate(cnt) Then
count = count+1;
}
if stime >=90000 then
Var3 = dayindex()+1; #당일봉개수 (1/21)
var4 = DayPL;
if MarketPosition == 1 Then
var1 = Highest(H,BarsSinceEntry);
if MarketPosition == -1 Then
var2 = Lowest(L,BarsSinceEntry);
if count < entrycnt and 090000 < stime and stime < 144300 and dayPL >= -3.0 Then{
if count >= 0 and MarketPosition == 0 and C > DayOpen+0.5 Then
Buy("롱진입",atstop,C);
if count >= 0 and MarketPosition == 0 and C < DayOpen-0.5 Then
Sell("숏진입",atstop,C);
...
답변 1
예스스탁 예스스탁 답변
2010-03-24 09:32:12
안녕하세요
예스스탁입니다.
문의하신 내용은 아래와 같습니다.
if MarketPosition == 1 Then{
exitlong("bx1",AtStop,EntryPrice-abs(dayPL));
exitlong("bx2",AtLimit,EntryPrice+abs(dayPL));
}
if MarketPosition == -1 Then{
ExitShort("sx1",AtLimit,EntryPrice-abs(dayPL));
ExitShort("sx2",AtStop,EntryPrice+abs(dayPL));
}
다만 daypl은 당일손익입니다.
그러므로 첫진입에서는 0이므로 와 같은 경우 진입이후 바로 청산이 발생하게 됩니다.
당일 첫거래는 제외하고 두번째 거래부터 발생되게 하시려면 아래와 같습니다.
if count >= 2 and MarketPosition == 1 Then{
exitlong("bx1",AtStop,EntryPrice-abs(dayPL));
exitlong("bx2",AtLimit,EntryPrice+abs(dayPL));
}
if count >= 2 and MarketPosition == -1 Then{
ExitShort("sx1",AtLimit,EntryPrice-abs(dayPL));
ExitShort("sx2",AtStop,EntryPrice+abs(dayPL));
}
참고하시기 바랍니다.
즐거운 하루되세요
> forKaren 님이 쓴 글입니다.
> 제목 : 청산식 관련
> 아래와 같은 수식의 데이 시스템에서 마지막 포지션 청산결과
당일수익(dayPL)이 손실인 경우...
dayPL 만큼의 수익이 발생하면 청산하는 수식을 작성해주세요.
예를들어 dayPL 이 현재까지 -1.3 이라면,
롱진입은 EntryPrice+1.3 청산
숏진입은 EntryPrice-1.3 청산하면 되겠지요.
dayPL을 청산수식에 어떻게 활용해야할지 모르겠네요.
-------------------------------------------------------------------
input : entrycnt(50);
var : cnt(0),count(0);
var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0);
XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정
XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정
PLR = 0;
count = 0;
for var1 = 1 to 100{
if sdate == EntryDate(var1) Then{
PLR = PLR+PositionProfit(var1);
}
}
if MarketPosition() == 0 Then{
OpenPL = 0;
dayPL = PLR;
}
Else{
OpenPL = (PositionProfit-(XCommission+XSlippage));
dayPL = PLR+OpenPL;
}
count = 0;
for cnt = 0 to 50{
if sDate == EntryDate(cnt) Then
count = count+1;
}
if stime >=90000 then
Var3 = dayindex()+1; #당일봉개수 (1/21)
var4 = DayPL;
if MarketPosition == 1 Then
var1 = Highest(H,BarsSinceEntry);
if MarketPosition == -1 Then
var2 = Lowest(L,BarsSinceEntry);
if count < entrycnt and 090000 < stime and stime < 144300 and dayPL >= -3.0 Then{
if count >= 0 and MarketPosition == 0 and C > DayOpen+0.5 Then
Buy("롱진입",atstop,C);
if count >= 0 and MarketPosition == 0 and C < DayOpen-0.5 Then
Sell("숏진입",atstop,C);
...