커뮤니티
수식 수정문의
2011-11-13 18:34:19
455
글번호 44714
아래 작성해주신 자산관리 수식을 KODEX200이나 KODEX레버리지에 적용할 수 있게 수정부탁드립니다..
아래 수식을 코덱스에 적용할수 있게 금액단위로 진입및 증액진입되게 수정부탁드립니다. 금액단위로 진입및 증액진입이 안된다면....KOSPI선물단위가 아닌 KODEX에 1000주 단위로 적용되게 수정해주세요..2가지 다해주시면 더 좋구요...
------------------------------------------------------------------------------------------------------------
1. volatility model
input : atrlen(20), len1(2.7),capital(50000000),Fraction(0.014),maxcont(10);
var : cont(0),i_CloseEquity(0);
i_CloseEquity = NetProfit*BigPointValue;
cont = int(((capital+i_closeequity)*fraction)/(ATR(ATRlen)*len1*BigPointValue));
if cont > maxcont or cont > int((Capital+i_CloseEquity)/(c*BigPointValue*0.15)) Then
cont = maxcont;
Else
cont = cont;
if cont < 1 or Capital+i_CloseEquity < 15000000 Then
cont = 0;
if crossup(c,ma(C,20)) Then
buy("b",OnClose,def,cont);
SetStopEndofday(150000);
-------------------------------------------------------------------------------------------
아래 수식도 코덱스에 적용할수 있게 금액단위로 진입및 증액진입되게 수정부탁드립니다. 금액단위로 진입및 증액진입이 안된다면....KOSPI선물단위가 아닌 KODEX에 1000주 단위로 적용되게 수정해주세요..2가지 다해주시면 더 좋구요...
Input : len(0.37), atrlen(20), len1(2.7), consec(1), contlimit(200);
var : cond1(false),cond2(false),cnt(0),currentEntrynum(0);
Var1=dayhigh(1)-daylow(1);
Cond1= sdate==exitdate(1) And MarketPosition(1)==1;
Cond2= sdate==exitdate(1) And marketposition(1)==-1;
currentEntrynum = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
currentEntrynum = currentEntrynum+1;
}
If index == 1 then{
Var10=1;
Var11=0;
}
If currentEntrynum>1 then{
If MarketPosition ==0 And MarketPosition[1]<>0 then{
If netprofit > netprofit[1] then{ #‘1. 마틴게일
#If i_netprofit < i_netprofit(1) then{ #‘2. 역마틴게일
Var11=0;
}
Else{
Var11=var11+1;
}
}
}
If Var11>=consec And MarketPosition==0 And MarketPosition(1)<>0 then{
Var10=Var10*2; #‘3. 직전계약수 대비 2배로 증가
#Var10=Var10+1; #‘4. 직전계약수 대비 1계약 추가
}
If Var11<consec then{
Var10=1;
}
If Var10>contlimit then{
Var10=contlimit;
}
If stime < 150000 then{
If Cond1==False then{
buy("매수",Atstop,dayopen+var1*len,var10);
}
If Cond2==False then{
sell("매도",Atstop,dayopen-var1*len,var10);
}
}
If MarketPosition<>0 then{
exitlong("매수추적스탑",Atstop,Highest(high,BarsSinceEntry+1)-atr(atrlen)*len1);
exitshort("매도추적스탑",Atstop,lowest(low,BarsSinceEntry+1)+atr(atrlen)*len1);
}
즐거운 하루되세요
답변 1
예스스탁 예스스탁 답변
2011-11-14 11:37:49
안녕하세요
예스스탁입니다.
1.
지정한 금액으로 진입하고하 하시는 경우에는
아래식을 상용하시면 됩니다.
input : atrlen(20), len1(2.7),capital(50000000);
var : cont(0),i_CloseEquity(0);
cont = int(capital/c);
if crossup(c,ma(C,20)) Then
buy("b",OnClose,def,cont);
SetStopEndofday(150000);
현재까지의 손익을 포함한 금액으로 하실 경우 아래식을 사용하시면 됩니다.
input : atrlen(20), len1(2.7),capital(50000000);
var : cont(0),i_CloseEquity(0);
cont = int((capital+NetProfit)/c);
if crossup(c,ma(C,20)) Then
buy("b",OnClose,def,cont);
SetStopEndofday(150000);
2.
코덱스는 매도진입식이 적용되지 않으므로
해당 내용은 모두 삭제했습니다.
Input : len(0.37), atrlen(20), len1(2.7), consec(1), contlimit(2000),capital(5000000);
var : cond1(false),cond2(false),cnt(0),currentEntrynum(0);
Var1=dayhigh(1)-daylow(1);
currentEntrynum = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
currentEntrynum = currentEntrynum+1;
}
if currentEntrynum < 1 Then
var10=int(capital/c);
If currentEntrynum >= 1 then{
If PositionProfit(1) > 0 then
Var10=int(capital/c);
Else
Var10=CurrentContracts[BarsSinceEntry(1)]*2;
}
If stime < 150000 then{
if H < dayopen+var1*len Then
buy("매수",Atstop,dayopen+var1*len,min(var10,contlimit));
}
If MarketPosition<>0 then{
exitlong("매수추적스탑",Atstop,Highest(high,BarsSinceEntry+1)-atr(atrlen)*len1);
}
즐거운 하루되세요
> 무명 님이 쓴 글입니다.
> 제목 : 수식 수정문의
> 아래 작성해주신 자산관리 수식을 KODEX200이나 KODEX레버리지에 적용할 수 있게 수정부탁드립니다..
아래 수식을 코덱스에 적용할수 있게 금액단위로 진입및 증액진입되게 수정부탁드립니다. 금액단위로 진입및 증액진입이 안된다면....KOSPI선물단위가 아닌 KODEX에 1000주 단위로 적용되게 수정해주세요..2가지 다해주시면 더 좋구요...
------------------------------------------------------------------------------------------------------------
1. volatility model
input : atrlen(20), len1(2.7),capital(50000000),Fraction(0.014),maxcont(10);
var : cont(0),i_CloseEquity(0);
i_CloseEquity = NetProfit*BigPointValue;
cont = int(((capital+i_closeequity)*fraction)/(ATR(ATRlen)*len1*BigPointValue));
if cont > maxcont or cont > int((Capital+i_CloseEquity)/(c*BigPointValue*0.15)) Then
cont = maxcont;
Else
cont = cont;
if cont < 1 or Capital+i_CloseEquity < 15000000 Then
cont = 0;
if crossup(c,ma(C,20)) Then
buy("b",OnClose,def,cont);
SetStopEndofday(150000);
-------------------------------------------------------------------------------------------
아래 수식도 코덱스에 적용할수 있게 금액단위로 진입및 증액진입되게 수정부탁드립니다. 금액단위로 진입및 증액진입이 안된다면....KOSPI선물단위가 아닌 KODEX에 1000주 단위로 적용되게 수정해주세요..2가지 다해주시면 더 좋구요...
Input : len(0.37), atrlen(20), len1(2.7), consec(1), contlimit(200);
var : cond1(false),cond2(false),cnt(0),currentEntrynum(0);
Var1=dayhigh(1)-daylow(1);
Cond1= sdate==exitdate(1) And MarketPosition(1)==1;
Cond2= sdate==exitdate(1) And marketposition(1)==-1;
currentEntrynum = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
currentEntrynum = currentEntrynum+1;
}
If index == 1 then{
Var10=1;
Var11=0;
}
If currentEntrynum>1 then{
If MarketPosition ==0 And MarketPosition[1]<>0 then{
If netprofit > netprofit[1] then{ #‘1. 마틴게일
#If i_netprofit < i_netprofit(1) then{ #‘2. 역마틴게일
Var11=0;
}
Else{
Var11=var11+1;
}
}
}
If Var11>=consec And MarketPosition==0 And MarketPosition(1)<>0 then{
Var10=Var10*2; #‘3. 직전계약수 대비 2배로 증가
#Var10=Var10+1; #‘4. 직전계약수 대비 1계약 추가
}
If Var11<consec then{
Var10=1;
}
If Var10>contlimit then{
Var10=contlimit;
}
If stime < 150000 then{
If Cond1==False then{
buy("매수",Atstop,dayopen+var1*len,var10);
}
If Cond2==False then{
sell("매도",Atstop,dayopen-var1*len,var10);
}
}
If MarketPosition<>0 then{
exitlong("매수추적스탑",Atstop,Highest(high,BarsSinceEntry+1)-atr(atrlen)*len1);
exitshort("매도추적스탑",Atstop,lowest(low,BarsSinceEntry+1)+atr(atrlen)*len1);
}
즐거운 하루되세요