커뮤니티
보완 부탁드리겠습니다.
2012-09-21 21:06:41
367
글번호 54957
아래 수식에 대해서 문의드립니다.
1분봉입니다.
파라미딩 : 다른신호만 허용
"아남전자"라는 종목에 대해서 9/21일에 매수를 하도록 했습니다.
해당 식을 돌려보면 매수11,매수12,매수13이 매수된후
수익1에서 일부 매도된후
주가가 계속 내려가서 끝나는데요
전일 봉의 일정 금액 아래로 내려오면
매수21~매수43까지 매수가 되야 될텐데
왜 매수가 안되는지 궁금합니다.
제가 구현하고 싶은 것은
매수11~43까지 당일에 한해서는 매수를 수행하며,
현재까지 매수된 부분에 대해서 수익이 발생한 경우에는 수익을 실현하며,
주가가 다시 하락시에 매수11~43에 올 경우 매수를 하고 싶습니다.
아남전자의 경우
매수11,12,13이 매수된후 수익1이 실현되고
매수21~43까지 하락된 가격에 따라서 매수가 되었으면 합니다.
아래 수식에 대해서 보완 부탁드리겠습니다.
늘 감사드립니다.
Input : 투입금액(100000);
Input : 매수일(20120921);
var : 중간값1(0), 중간값2(0), 중간값3(0), 중간값4(0);
var : 매수고가(0), 매도수량(0);
var : 매수수량1(0), 매수수량2(0), 매수수량3(0), 매수수량4(0);
var : 분할매수금액1(0), 분할매수금액2(0), 분할매수금액3(0), 분할매수금액4(0);
분할매수금액1 = (투입금액)/3;
분할매수금액2 = (투입금액*2)/3;
분할매수금액3 = (투입금액)/3;
분할매수금액4 = (투입금액*2)/3;
if sdate == 매수일
then
{
중간값2 = (DayClose(1) + DayLow(1))/2;
중간값1 = (DayClose(1) + 중간값2)/2;
중간값3 = (DayLow(1) + 중간값2)/2;
중간값4 = DayLow(1);
if CodeCategory == 1 and BasePrice < 50000 Then {
매수수량1 = int(int(분할매수금액1/중간값1)/10)*10;
매수수량2 = int(int(분할매수금액2/중간값2)/10)*10;
매수수량3 = int(int(분할매수금액3/중간값3)/10)*10;
매수수량4 = int(int(분할매수금액4/중간값4)/10)*10;
} Else {
매수수량1 = int(분할매수금액1/중간값1);
매수수량2 = int(분할매수금액2/중간값2);
매수수량3 = int(분할매수금액3/중간값3);
매수수량4 = int(분할매수금액4/중간값4);
}
}
if (MarketPosition== 0 or
(MarketPosition == 1 and
countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) < 1))
Then {
if sdate == 매수일
and stime < 144900
then {
Buy("매수11", AtLimit, 중간값1+PriceScale, 매수수량1);
Buy("매수12", AtLimit, 중간값1, 매수수량1);
Buy("매수13", AtLimit, 중간값1-PriceScale, 매수수량1);
Buy("매수21", AtLimit, 중간값2+PriceScale, 매수수량2);
Buy("매수22", AtLimit, 중간값2, 매수수량2);
Buy("매수23", AtLimit, 중간값2-PriceScale, 매수수량2);
Buy("매수31", AtLimit, 중간값3+PriceScale, 매수수량3);
Buy("매수32", AtLimit, 중간값3, 매수수량3);
Buy("매수33", AtLimit, 중간값3-PriceScale, 매수수량3);
Buy("매수41", AtLimit, 중간값4+PriceScale, 매수수량4);
Buy("매수42", AtLimit, 중간값4, 매수수량4);
Buy("매수43", AtLimit, 중간값4-PriceScale, 매수수량4);
}
}
if MarketPosition == 1 then {
if stime < 144900 then {
if CurrentContracts > CurrentContracts[1] Then{
매수고가 = H;
if CodeCategory == 1 and BasePrice < 50000 Then
매도수량 = int(int(CurrentContracts*0.2)/10)*10;
Else
매도수량 = int(CurrentContracts*0.2);
}
if H > 매수고가 Then
매수고가 = H;
if 매수고가 < AvgEntryPrice*1.03 Then
exitlong("수익1",atlimit,AvgEntryPrice*1.03,"",매도수량,1);
if 매수고가 < AvgEntryPrice*1.05 Then
exitlong("수익2",atlimit,AvgEntryPrice*1.05,"",매도수량,1);
if 매수고가 < AvgEntryPrice*1.07 Then
exitlong("수익3",atlimit,AvgEntryPrice*1.07,"",매도수량,1);
if 매수고가 < AvgEntryPrice*1.09 Then
exitlong("수익4",atlimit,AvgEntryPrice*1.09,"",매도수량,1);
if 매수고가 < AvgEntryPrice*1.11 Then
exitlong("수익5",atlimit,AvgEntryPrice*1.11,"");
}
}
답변 1
예스스탁 예스스탁 답변
2012-09-24 09:40:32
안녕하세요
예스스탁입니다.
진입식의 조건중 아래내용은
일부청산이 있을 경우 더이상 진입하지 않겠다는 내용입니다.
해당 내용 삭제하시면 됩니다.
countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) < 1
즐거운 하루되세요
> 엠제이 님이 쓴 글입니다.
> 제목 : 보완 부탁드리겠습니다.
>
아래 수식에 대해서 문의드립니다.
1분봉입니다.
파라미딩 : 다른신호만 허용
"아남전자"라는 종목에 대해서 9/21일에 매수를 하도록 했습니다.
해당 식을 돌려보면 매수11,매수12,매수13이 매수된후
수익1에서 일부 매도된후
주가가 계속 내려가서 끝나는데요
전일 봉의 일정 금액 아래로 내려오면
매수21~매수43까지 매수가 되야 될텐데
왜 매수가 안되는지 궁금합니다.
제가 구현하고 싶은 것은
매수11~43까지 당일에 한해서는 매수를 수행하며,
현재까지 매수된 부분에 대해서 수익이 발생한 경우에는 수익을 실현하며,
주가가 다시 하락시에 매수11~43에 올 경우 매수를 하고 싶습니다.
아남전자의 경우
매수11,12,13이 매수된후 수익1이 실현되고
매수21~43까지 하락된 가격에 따라서 매수가 되었으면 합니다.
아래 수식에 대해서 보완 부탁드리겠습니다.
늘 감사드립니다.
Input : 투입금액(100000);
Input : 매수일(20120921);
var : 중간값1(0), 중간값2(0), 중간값3(0), 중간값4(0);
var : 매수고가(0), 매도수량(0);
var : 매수수량1(0), 매수수량2(0), 매수수량3(0), 매수수량4(0);
var : 분할매수금액1(0), 분할매수금액2(0), 분할매수금액3(0), 분할매수금액4(0);
분할매수금액1 = (투입금액)/3;
분할매수금액2 = (투입금액*2)/3;
분할매수금액3 = (투입금액)/3;
분할매수금액4 = (투입금액*2)/3;
if sdate == 매수일
then
{
중간값2 = (DayClose(1) + DayLow(1))/2;
중간값1 = (DayClose(1) + 중간값2)/2;
중간값3 = (DayLow(1) + 중간값2)/2;
중간값4 = DayLow(1);
if CodeCategory == 1 and BasePrice < 50000 Then {
매수수량1 = int(int(분할매수금액1/중간값1)/10)*10;
매수수량2 = int(int(분할매수금액2/중간값2)/10)*10;
매수수량3 = int(int(분할매수금액3/중간값3)/10)*10;
매수수량4 = int(int(분할매수금액4/중간값4)/10)*10;
} Else {
매수수량1 = int(분할매수금액1/중간값1);
매수수량2 = int(분할매수금액2/중간값2);
매수수량3 = int(분할매수금액3/중간값3);
매수수량4 = int(분할매수금액4/중간값4);
}
}
if (MarketPosition== 0 or
(MarketPosition == 1 and
countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) < 1))
Then {
if sdate == 매수일
and stime < 144900
then {
Buy("매수11", AtLimit, 중간값1+PriceScale, 매수수량1);
Buy("매수12", AtLimit, 중간값1, 매수수량1);
Buy("매수13", AtLimit, 중간값1-PriceScale, 매수수량1);
Buy("매수21", AtLimit, 중간값2+PriceScale, 매수수량2);
Buy("매수22", AtLimit, 중간값2, 매수수량2);
Buy("매수23", AtLimit, 중간값2-PriceScale, 매수수량2);
Buy("매수31", AtLimit, 중간값3+PriceScale, 매수수량3);
Buy("매수32", AtLimit, 중간값3, 매수수량3);
Buy("매수33", AtLimit, 중간값3-PriceScale, 매수수량3);
Buy("매수41", AtLimit, 중간값4+PriceScale, 매수수량4);
Buy("매수42", AtLimit, 중간값4, 매수수량4);
Buy("매수43", AtLimit, 중간값4-PriceScale, 매수수량4);
}
}
if MarketPosition == 1 then {
if stime < 144900 then {
if CurrentContracts > CurrentContracts[1] Then{
매수고가 = H;
if CodeCategory == 1 and BasePrice < 50000 Then
매도수량 = int(int(CurrentContracts*0.2)/10)*10;
Else
매도수량 = int(CurrentContracts*0.2);
}
if H > 매수고가 Then
매수고가 = H;
if 매수고가 < AvgEntryPrice*1.03 Then
exitlong("수익1",atlimit,AvgEntryPrice*1.03,"",매도수량,1);
if 매수고가 < AvgEntryPrice*1.05 Then
exitlong("수익2",atlimit,AvgEntryPrice*1.05,"",매도수량,1);
if 매수고가 < AvgEntryPrice*1.07 Then
exitlong("수익3",atlimit,AvgEntryPrice*1.07,"",매도수량,1);
if 매수고가 < AvgEntryPrice*1.09 Then
exitlong("수익4",atlimit,AvgEntryPrice*1.09,"",매도수량,1);
if 매수고가 < AvgEntryPrice*1.11 Then
exitlong("수익5",atlimit,AvgEntryPrice*1.11,"");
}
}
다음글
이전글