커뮤니티
이것저것 문의드립니다.
2017-11-22 22:19:01
181
글번호 114389
덕분에 도전하고 있습니다. 매번 꼼꼼한 답변 감사합니다.
1. 시스템
진입
var1이 n개봉간 n만큼 늘었을 때 진입
2. 시스템
-켈리비율에 따른 베팅 답변(29542)이 게시판에 있던데요. 이걸로 코딩을 짜고 싶습니다.
진입
각봉마다 시가 진입
종가 청산
비고
-(가능하다면)10:00 이후부터 켈리비율이 마이너스가 되면 그날 더이상 진입하지 않음.
3. 비고
29542번은 읽어봐도 로직이 잘 이해가 안되던데요. 주석 좀 부탁드립니다. 켈리비율이 가능하다는 건 승률, 손익비(수익률/손실률)를 코딩이 추적 가능하다는 의미로 봐도 되는 건가요?
4. 기타
var1이 n개봉간 n% 늘었을 때 코딩
5. 시스템
아래 수식에 아래 조건이 만족됐을 때 매매는 09:20분부터 20:20분까지라는 필터 추가 부탁드립니다. 해외선물 관련 내용입니다.
분봉차트(해외-첫봉완성)
Inputs: LongFactor(1.2), ShortFactor(1.8),n(5);
Variables:BuyLevel(0), SellLevel(0);
BuyLevel = ma(Range, 4) * LongFactor;
SellLevel = ma(Range, 4) * ShortFactor;
// Entry Orders
Buy("B",atstop,NextBarOpen + BuyLevel);
Sell("S",atstop,NextBarOpen - SellLevel);
if bdate != bdate[1] Then
var1 = var1+1;
if bdate != bdate[1] Then
var1 = var1+1;
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then
value1 = var1;
if var1[1] == value1+n and bdate != bdate[1] Then
exitlong("bx");
}
if MarketPosition == -1 Then{
if CurrentContracts > CurrentContracts[1] Then
value2 = var1;
if var1[1] == value2+n and bdate != bdate[1] Then
ExitShort("sx");
}
답변 1
예스스탁 예스스탁 답변
2017-11-23 14:42:35
안녕하세요
예스스탁입니다.
1
input : n(5),nn(1);
if var1 >= var1[n]+nn Then
buy("b");
2
해당수식은 최적투자비율을 자동으로 계산해 주는 것은 아닙니다.
주가지수선물기준으로 사용자가 직접 투자비율을 변경하면서
수식을 적용해 최적비율을 직접 찾아 볼때 사용하는 수식입니다.
캘리비율에 대해서는 별도로 사용하거나 작성된 수식은 가지고 있지 않아
해당 수식을 주식으로 변경해 작성해 드립니다.
input : capital(50000000),margin(0.15),Fraction(0.19);
input : maxcont(200),method(1),kelly(0.2);
var : cont(0),CloseEquity(0),cond1(false),cond2(false);
CloseEquity = (NetProfit+OpenPositionProfit)*BigPointValue;
cont = int(((Capital+CloseEquity)*kelly)/NextBarOpen);
if cont < 1 Then
cont = 0;
input : n(5),nn(1);
if var1 >= var1[n]+nn Then
buy("b",AtMarket,def,cont);
exitlong("bx");
3
input : capital(50000000),margin(0.15),Fraction(0.19);
input : maxcont(200),method(1),kelly(0.2);
var : cont(0),CloseEquity(0),cond1(false),cond2(false);
#손익금계산(총손익+미청산손익)*1포인트당금악
CloseEquity = (NetProfit+OpenPositionProfit)*BigPointValue;
#총평가금(Capital+CloseEquity)의 일정비율(capital)을 1계약 증거금으로 나누어 수량계산
if method == 1 Then
cont = int(((Capital+CloseEquity)*kelly)/(c*BigPointValue*margin));
Else//아래는 어떤 내용인지 잘 모르겠습니다.
cont = int(((capital+closeequity)*kelly*fraction)/1200000);
#수량이 지정한 최대수량이상이면 200계약만 진입
if cont > maxcont or cont > int((Capital+CloseEquity)/(c*BigPointValue*0.15)) Then
cont = maxcont;
Else
cont = cont;
#수량이 1계 미만이거나 총평가금이 최소 증거금 미만이면 수량은 0
if cont < 1 or Capital+CloseEquity < 15000000 Then
cont = 0;
4
input : n(5),nn(1);
if var1 >= var1[n]*(1+nn/100) Then
buy("b");
5.
Inputs: LongFactor(1.2), ShortFactor(1.8),n(5);
Variables:BuyLevel(0), SellLevel(0),Tcond(false);
if stime >= 92000 or (stime > 92000 and stime[1] < 92000) Then
Tcond = true;
if stime >= 202000 or (stime > 202000 and stime[1] < 202000) Then
Tcond = false;
BuyLevel = ma(Range, 4) * LongFactor;
SellLevel = ma(Range, 4) * ShortFactor;
if Tcond == true then{
Buy("B",atstop,NextBarOpen + BuyLevel);
Sell("S",atstop,NextBarOpen - SellLevel);
}
if bdate != bdate[1] Then
var1 = var1+1;
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then
value1 = var1;
if var1[1] == value1+n and bdate != bdate[1] Then
exitlong("bx");
}
if MarketPosition == -1 Then{
if CurrentContracts > CurrentContracts[1] Then
value2 = var1;
if var1[1] == value2+n and bdate != bdate[1] Then
ExitShort("sx");
}
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 이것저것 문의드립니다.
> 덕분에 도전하고 있습니다. 매번 꼼꼼한 답변 감사합니다.
1. 시스템
진입
var1이 n개봉간 n만큼 늘었을 때 진입
2. 시스템
-켈리비율에 따른 베팅 답변(29542)이 게시판에 있던데요. 이걸로 코딩을 짜고 싶습니다.
진입
각봉마다 시가 진입
종가 청산
비고
-(가능하다면)10:00 이후부터 켈리비율이 마이너스가 되면 그날 더이상 진입하지 않음.
3. 비고
29542번은 읽어봐도 로직이 잘 이해가 안되던데요. 주석 좀 부탁드립니다. 켈리비율이 가능하다는 건 승률, 손익비(수익률/손실률)를 코딩이 추적 가능하다는 의미로 봐도 되는 건가요?
4. 기타
var1이 n개봉간 n% 늘었을 때 코딩
5. 시스템
아래 수식에 아래 조건이 만족됐을 때 매매는 09:20분부터 20:20분까지라는 필터 추가 부탁드립니다. 해외선물 관련 내용입니다.
분봉차트(해외-첫봉완성)
Inputs: LongFactor(1.2), ShortFactor(1.8),n(5);
Variables:BuyLevel(0), SellLevel(0);
BuyLevel = ma(Range, 4) * LongFactor;
SellLevel = ma(Range, 4) * ShortFactor;
// Entry Orders
Buy("B",atstop,NextBarOpen + BuyLevel);
Sell("S",atstop,NextBarOpen - SellLevel);
if bdate != bdate[1] Then
var1 = var1+1;
if bdate != bdate[1] Then
var1 = var1+1;
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then
value1 = var1;
if var1[1] == value1+n and bdate != bdate[1] Then
exitlong("bx");
}
if MarketPosition == -1 Then{
if CurrentContracts > CurrentContracts[1] Then
value2 = var1;
if var1[1] == value2+n and bdate != bdate[1] Then
ExitShort("sx");
}
다음글
이전글