커뮤니티
문의드립니다.
2012-09-05 18:28:53
249
글번호 54409
이전답변 감사드립니다.
몇가지 수정할 사항에 대해 문의드립니다.
1. dayhigh이란 수식은 당일날의 고점만을 뜻하는 것이라고 생각됩니다. 본래의 의도는 차트상 나타나는 고점을 의미합니다. 이것은 차트실행시 300봉,5000봉 등 제가 차트를 실행시킬 때의 봉 개수에 따라서 달라져야 함을 의미합니다. 따라서 차트상에 나타나는 고점을 의미하는 수식으로 수정해 주시면 감사하겠습니다.
2. 분할 매수는 3차까지 이루어진다는 수식이 맞지만, 분할 매도부분의 4차 매도분이 수식에는 작성되지 않은것 같아 문의드립니다.
3. 만약 분할매도하는 도중 1차매도분만 체결(100만원의 20%인 20만원) 된 다음 2차매수(1차매수의 잔여량인 100만원의 80%인 80만원 + 2차매수량 100만원 = 180만원)가 된 경우 시스템상 매입금액과 매도금액의 차이로 인한 오류가 염려되어 문의드립니다.
모든 분할 매도는 매입 잔고상에 있는 수량의 20%, 30%, 50%, 100%로 계산 하여 분할 매도 주문이 나갈 수 있는지 문의드립니다.
감사합니다.
안녕하세요
예스스탁입니다.
피라미딩을 다른진입신호만허용으로 설정하시고 적용하시기 바랍니다.
/*시스템이 적용된 차트상의 고가(갱신시 자동으로 변환될 수있었으면 좋겠습니다)대비
1차매수 -7% 100만원 매수
2차매수 -10% 100만원 매수
3차매수 -14% 100만원 매수
*/
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 and countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) < 1 Then{
if CurrentEntries == 1 Then
buy("b2",atlimit,dayhigh*0.90,var1);
if CurrentEntries == 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;
}
Else{
value1 = int(CurrentContracts*0.2);
value2 = int(CurrentContracts*0.3);
}
}
if L < value1 Then
value1 = L;
if countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) == 0 Then
ExitLong("bx1",AtLimit,var2*1.03,"",value1,1);
if countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) == 1 Then
ExitLong("bx2",AtLimit,var2*1.05,"",value2,1);
if countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) == 2 Then
ExitLong("bx3",AtLimit,var2*1.07);
}
즐거운 하루되세요
> 사과쥬스 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 이전 답변 감사드립니다.
매수
현물매매입니다.
3분봉상
시스템이 적용된 차트상의 고가(갱신시 자동으로 변환될 수있었으면 좋겠습니다)대비
1차매수 -7% 100만원 매수
2차매수 -10% 100만원 매수
3차매수 -14% 100만원 매수
매도
1차매도 - 1차매수가 이후 최저점기준 3% - 전체물량의 20%, 5% - 전체물량의 30%, 7% - 전체물량의 50%, 9% - 전체물량의 100%
2차매도 - 2차매수가 이후 최저점기준 3% - 전체물량의 20%, 5% - 전체물량의 30%, 7% - 전체물량의 50%, 9% - 전체물량의 100%
3차매도 - 3차매수가 이후 최저점기준 3% - 전체물량의 20%, 5% - 전체물량의 30%, 7% - 전체물량의 50%, 9% - 전체물량의 100%
* 1차,2차,3차 모두, 매수는 딱 한번씩만 매수되도록 하고싶습니다.
답변 1
예스스탁 예스스탁 답변
2012-09-06 08:46:30
안녕하세요
예스스탁입니다.
1.
차트 전체상 고점식은 아래와 같습니다.
var : ChartHigh(0);
if index == 0 Then
ChartHigh = H;
if H > ChartHigh Then
ChartHigh = H;
2.
아래식 4차 매도 추가한 식입니다.
이전의 식은 한번 청산이 발생하면 더이상 진입을 하지 못하게 되어 있었습니다.
청산후에도 추가진입되게 수정했습니다.
3.
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. dayhigh이란 수식은 당일날의 고점만을 뜻하는 것이라고 생각됩니다. 본래의 의도는 차트상 나타나는 고점을 의미합니다. 이것은 차트실행시 300봉,5000봉 등 제가 차트를 실행시킬 때의 봉 개수에 따라서 달라져야 함을 의미합니다. 따라서 차트상에 나타나는 고점을 의미하는 수식으로 수정해 주시면 감사하겠습니다.
2. 분할 매수는 3차까지 이루어진다는 수식이 맞지만, 분할 매도부분의 4차 매도분이 수식에는 작성되지 않은것 같아 문의드립니다.
3. 만약 분할매도하는 도중 1차매도분만 체결(100만원의 20%인 20만원) 된 다음 2차매수(1차매수의 잔여량인 100만원의 80%인 80만원 + 2차매수량 100만원 = 180만원)가 된 경우 시스템상 매입금액과 매도금액의 차이로 인한 오류가 염려되어 문의드립니다.
모든 분할 매도는 매입 잔고상에 있는 수량의 20%, 30%, 50%, 100%로 계산 하여 분할 매도 주문이 나갈 수 있는지 문의드립니다.
감사합니다.
안녕하세요
예스스탁입니다.
피라미딩을 다른진입신호만허용으로 설정하시고 적용하시기 바랍니다.
/*시스템이 적용된 차트상의 고가(갱신시 자동으로 변환될 수있었으면 좋겠습니다)대비
1차매수 -7% 100만원 매수
2차매수 -10% 100만원 매수
3차매수 -14% 100만원 매수
*/
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 and countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) < 1 Then{
if CurrentEntries == 1 Then
buy("b2",atlimit,dayhigh*0.90,var1);
if CurrentEntries == 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;
}
Else{
value1 = int(CurrentContracts*0.2);
value2 = int(CurrentContracts*0.3);
}
}
if L < value1 Then
value1 = L;
if countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) == 0 Then
ExitLong("bx1",AtLimit,var2*1.03,"",value1,1);
if countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) == 1 Then
ExitLong("bx2",AtLimit,var2*1.05,"",value2,1);
if countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) == 2 Then
ExitLong("bx3",AtLimit,var2*1.07);
}
즐거운 하루되세요
> 사과쥬스 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 이전 답변 감사드립니다.
매수
현물매매입니다.
3분봉상
시스템이 적용된 차트상의 고가(갱신시 자동으로 변환될 수있었으면 좋겠습니다)대비
1차매수 -7% 100만원 매수
2차매수 -10% 100만원 매수
3차매수 -14% 100만원 매수
매도
1차매도 - 1차매수가 이후 최저점기준 3% - 전체물량의 20%, 5% - 전체물량의 30%, 7% - 전체물량의 50%, 9% - 전체물량의 100%
2차매도 - 2차매수가 이후 최저점기준 3% - 전체물량의 20%, 5% - 전체물량의 30%, 7% - 전체물량의 50%, 9% - 전체물량의 100%
3차매도 - 3차매수가 이후 최저점기준 3% - 전체물량의 20%, 5% - 전체물량의 30%, 7% - 전체물량의 50%, 9% - 전체물량의 100%
* 1차,2차,3차 모두, 매수는 딱 한번씩만 매수되도록 하고싶습니다.