커뮤니티
문의드립니다
2012-09-06 09:45:54
178
글번호 54429
이전답변감사드립니다
알 려주신 차트상 의 고점식을 2번의 수식에 적용시켜주시면감사하겟습니다 그리고 3. 만약 분할매도하는 도중 1차매도분만 체결(100만원의 20%인 20만원) 된 다음 2차매수(1차매수의 잔여량인 100만원의 80%인 80만 원 + 2차매수량 100만원 = 180만원)가 된 경우 시스템상 매입금액과 매도금액의 차이로 인한 오류가 염려되어 문의드립니다. 모든 분할 매도는 매입 잔고상에 있는 수량의 20%, 30%, 50%, 100%로 계산 하여 분할 매도 주문이 나갈 수 있는지 문의드립니다. 그리고 1,2,3차 매수는 시스템적용시 한번씩만 주문이 나갈수 있도록 수정해 주시면 감사하겟 습니다
1. 차트 전체상 고점식은 아래와 같습니다.
var : ChartHigh(0);
if index == 0 Then ChartHigh = H;
if H > ChartHigh Then ChartHigh = H
2. input : 투입금액(1000000);
if CodeCategory == 1 Then{ #코스피 if BasePrice < 50000 Then Var1 = int(int(투입금액/C)/10)*10; Else Var1 = int(투입금액/C); }
if CodeCategory == 2 or CodeCategory == 8 Then#코스닥 or etf Var1 = int(투입금액/C);
if MarketPosition == 0 Then buy("b1",atlimit,dayhigh*0.93,var1);
if MarketPosition == 1 Then{ if CurrentEntries == 1 and MaxEntries == 1 Then buy("b2",atlimit,dayhigh*0.90,var1); if CurrentEntries == 2 and MaxEntries == 2 Then buy("b3",atlimit,dayhigh*0.86,var1); }
if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then{ var2 = L; if CodeCategory == 1 and BasePrice < 50000 Then{ value1 = int(int(CurrentContracts*0.2)/10)*10; value2 = int(int(CurrentContracts*0.3)/10)*10; value3 = int(int(CurrentContracts*0.5)/10)*10; } Else{ value1 = int(CurrentContracts*0.2); value2 = int(CurrentContracts*0.3); value3 = int(CurrentContracts*0.5); } } if L < var2 Then var2 = L; if countif(CurrentContracts > CurrentContracts[1],BarsSinceEntry) == 1 Then{ ExitLong("bx11",AtLimit,var2*1.03,"",value1,1); ExitLong("bx12",AtLimit,var2*1.05,"",value2,1); ExitLong("bx13",AtLimit,var2*1.07,"",value3,1); ExitLong("bx14",AtLimit,var2*1.09); } if countif(CurrentContracts > CurrentContracts[1],BarsSinceEntry) == 2 Then{ ExitLong("bx21",AtLimit,var2*1.03,"",value1,1); ExitLong("bx22",AtLimit,var2*1.05,"",value2,1); ExitLong("bx23",AtLimit,var2*1.07,"",value3,1); ExitLong("bx24",AtLimit,var2*1.09); } if countif(CurrentContracts > CurrentContracts[1],BarsSinceEntry) == 3 Then{ ExitLong("bx31",AtLimit,var2*1.03,"",value1,1); ExitLong("bx32",AtLimit,var2*1.05,"",value2,1); ExitLong("bx33",AtLimit,var2*1.07,"",value3,1); ExitLong("bx34",AtLimit,var2*1.09); } }
답변 1
예스스탁 예스스탁 답변
2012-09-06 11:42:11
안녕하세요
예스스탁입니다.
문의하신 모두 반영이 되어 있는 식입니다.
차트상 고점식내용으로 수정한 식입니다.
input : 투입금액(1000000);
var : ChartHigh(0);
if index == 0 Then
ChartHigh = H;
if H > ChartHigh Then
ChartHigh = H;
if CodeCategory == 1 Then{ #코스피
if BasePrice < 50000 Then
Var1 = int(int(투입금액/C)/10)*10;
Else
Var1 = int(투입금액/C);
}
if CodeCategory == 2 or CodeCategory == 8 Then#코스닥 or etf
Var1 = int(투입금액/C);
if MarketPosition == 0 Then
buy("b1",atlimit,ChartHigh*0.93,var1);
if MarketPosition == 1 Then{
if CurrentEntries == 1 and MaxEntries == 1 Then
buy("b2",atlimit,ChartHigh*0.90,var1);
if CurrentEntries == 2 and MaxEntries == 2 Then
buy("b3",atlimit,ChartHigh*0.86,var1);
}
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then{
var2 = L;
if CodeCategory == 1 and BasePrice < 50000 Then{
value1 = int(int(CurrentContracts*0.2)/10)*10;
value2 = int(int(CurrentContracts*0.3)/10)*10;
value3 = int(int(CurrentContracts*0.5)/10)*10;
}
Else{
value1 = int(CurrentContracts*0.2);
value2 = int(CurrentContracts*0.3);
value3 = int(CurrentContracts*0.5);
}
}
if L < var2 Then
var2 = L;
if countif(CurrentContracts > CurrentContracts[1],BarsSinceEntry) == 1 Then{
ExitLong("bx11",AtLimit,var2*1.03,"",value1,1);
ExitLong("bx12",AtLimit,var2*1.05,"",value2,1);
ExitLong("bx13",AtLimit,var2*1.07,"",value3,1);
ExitLong("bx14",AtLimit,var2*1.09);
}
if countif(CurrentContracts > CurrentContracts[1],BarsSinceEntry) == 2 Then{
ExitLong("bx21",AtLimit,var2*1.03,"",value1,1);
ExitLong("bx22",AtLimit,var2*1.05,"",value2,1);
ExitLong("bx23",AtLimit,var2*1.07,"",value3,1);
ExitLong("bx24",AtLimit,var2*1.09);
}
if countif(CurrentContracts > CurrentContracts[1],BarsSinceEntry) == 3 Then{
ExitLong("bx31",AtLimit,var2*1.03,"",value1,1);
ExitLong("bx32",AtLimit,var2*1.05,"",value2,1);
ExitLong("bx33",AtLimit,var2*1.07,"",value3,1);
ExitLong("bx34",AtLimit,var2*1.09);
}
}
즐거운 하루되세요
> 사과쥬스 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 이전답변감사드립니다
알 려주신 차트상 의 고점식을 2번의 수식에 적용시켜주시면감사하겟습니다 그리고 3. 만약 분할매도하는 도중 1차매도분만 체결(100만원의 20%인 20만원) 된 다음 2차매수(1차매수의 잔여량인 100만원의 80%인 80만 원 + 2차매수량 100만원 = 180만원)가 된 경우 시스템상 매입금액과 매도금액의 차이로 인한 오류가 염려되어 문의드립니다. 모든 분할 매도는 매입 잔고상에 있는 수량의 20%, 30%, 50%, 100%로 계산 하여 분할 매도 주문이 나갈 수 있는지 문의드립니다. 그리고 1,2,3차 매수는 시스템적용시 한번씩만 주문이 나갈수 있도록 수정해 주시면 감사하겟 습니다
1. 차트 전체상 고점식은 아래와 같습니다.
var : ChartHigh(0);
if index == 0 Then ChartHigh = H;
if H > ChartHigh Then ChartHigh = H
2. input : 투입금액(1000000);
if CodeCategory == 1 Then{ #코스피 if BasePrice < 50000 Then Var1 = int(int(투입금액/C)/10)*10; Else Var1 = int(투입금액/C); }
if CodeCategory == 2 or CodeCategory == 8 Then#코스닥 or etf Var1 = int(투입금액/C);
if MarketPosition == 0 Then buy("b1",atlimit,dayhigh*0.93,var1);
if MarketPosition == 1 Then{ if CurrentEntries == 1 and MaxEntries == 1 Then buy("b2",atlimit,dayhigh*0.90,var1); if CurrentEntries == 2 and MaxEntries == 2 Then buy("b3",atlimit,dayhigh*0.86,var1); }
if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then{ var2 = L; if CodeCategory == 1 and BasePrice < 50000 Then{ value1 = int(int(CurrentContracts*0.2)/10)*10; value2 = int(int(CurrentContracts*0.3)/10)*10; value3 = int(int(CurrentContracts*0.5)/10)*10; } Else{ value1 = int(CurrentContracts*0.2); value2 = int(CurrentContracts*0.3); value3 = int(CurrentContracts*0.5); } } if L < var2 Then var2 = L; if countif(CurrentContracts > CurrentContracts[1],BarsSinceEntry) == 1 Then{ ExitLong("bx11",AtLimit,var2*1.03,"",value1,1); ExitLong("bx12",AtLimit,var2*1.05,"",value2,1); ExitLong("bx13",AtLimit,var2*1.07,"",value3,1); ExitLong("bx14",AtLimit,var2*1.09); } if countif(CurrentContracts > CurrentContracts[1],BarsSinceEntry) == 2 Then{ ExitLong("bx21",AtLimit,var2*1.03,"",value1,1); ExitLong("bx22",AtLimit,var2*1.05,"",value2,1); ExitLong("bx23",AtLimit,var2*1.07,"",value3,1); ExitLong("bx24",AtLimit,var2*1.09); } if countif(CurrentContracts > CurrentContracts[1],BarsSinceEntry) == 3 Then{ ExitLong("bx31",AtLimit,var2*1.03,"",value1,1); ExitLong("bx32",AtLimit,var2*1.05,"",value2,1); ExitLong("bx33",AtLimit,var2*1.07,"",value3,1); ExitLong("bx34",AtLimit,var2*1.09); } }