답변완료
행복; 수식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
시스템식 작성 바랍니다
가. 주기와 매매대상 종목
1. 주기; 1초
2. 매매대상 종목; 3개
- 종목1; 지수선물(예; 2015년 5월 6일 15시 5분 가격- 264.30)
- 종목2; 위아래 구분없이, 지수선물로부터 네 번째로 가까운 콜옵션
(예; 첫 번째로 가까운 콜옵션- 265.00,
두 번째로 가까운 콜옵션- 262.50,
세 번째로 가까운 콜옵션- 267.50,
네 번째로 가까운 콜옵션- 260.00)
- 종목3; 지수선물로부터
위로 5번째 가까운 콜옵션
(예; 첫 번째로 가까운 콜옵션- 265.00,
두 번째로 가까운 콜옵션- 267.50,
세 번째로 가까운 콜옵션- 270.00,
네 번째로 가까운 콜옵션- 272.50,
다섯 번째로 가까운 콜옵션- 275.00) 과
아래로 5번째 가까운 풋옵션
(예; 첫 번째로 가까운 풋옵션- 262.50,
두 번째로 가까운 풋옵션- 260.00,
세 번째로 가까운 풋옵션- 257.50,
네 번째로 가까운 풋옵션- 255.00,
다섯 번째로 가까운 풋옵션- 252.25) 의
현재가 중 작은 종목.
즉, 콜옵션 275.00의 현재가는 0.04 이고
풋옵션 252.25의 현재가는 0.06 이라고 할 때
콜옵션 275.00 의 현재가가 작으므로
종목3에 해당되는 것은 콜옵션 275.00 입니다
나. 매매 전략
1. 진입을 위한 참조종목 조건
- 진입조건 도달을 평가하는 시간; 15시 10분
- 종목1; 참조종목1( 삼성전자 )이 10일 이내에
5일 이평, 20일 이평이 crossup 한 적이 없는 상태에서
당일 crossup 하면서
당일 거래대금이 전일대비 1.5 배 이면
종목1을 매수하고
( 이동평균선은 주기가 일봉 )
- 종목2; 참조종목2( 현대차 )이 20일 이내에
10일 이평, 40일 이평이 crossup 한 적이 없는 상태에서
당일 crossup 하면서
당일 거래량이 어제 기준 거래량 20일 이평 대비 2.0 배 이면
종목2 를 매수하고
( 이동평균선은 주기가 일봉 )
- 종목3; 참조종목3( KODEX200 )이
어제 포함 5일 중에 4일 이상 외국인순매수가 20억 이상인 상태에서
당일 외국인순매수가 30억원 이상이면
종목3을 매수합니다
2. 진입금액
- 총투자금액; 5억원
- 종목1 진입금액
= (총투자금액)/5 * { (5일간 삼성전자 상승률)/(5일간 KODEX200 상승률) }
- 종목2 진입금액
= (총투자금액)/5 * { 절대값(10일간 현대차 상승률)/절대값(10일간 KODEX200 상승률) }
- 종목3 진입금액 = (총투자금액)/5
3. 매수 주문가격
- 15시 10분 기준 (매도호가 + 2호가) 와 (매도호가 + 2%) 중에 작은 금액에 매수 주문
4. 매수 주문시간
- 15시 11분
5. 청산조건
- 종목1 ; 매수 후 참조종목1( 삼성전자 )의
5일 이평, 20일 이평이 crossdown 하면
종목1의 보유수량 중 50%는 당일 15시 10분에 청산하고
나머지 50%는 다음날 11시에 청산하며
( 이동평균선은 주기가 일봉 )
- 종목2; 매수 후 참조종목2( 현대차 )의
10일 이평, 40일 이평이 crossdown 하면
종목2의 보유수량 중 30%는 당일 15시 10분에 청산하고
35%는 2일 후 10시에 청산하고
나머지 35%는 4일 후 12시에 청산하고
( 이동평균선은 주기가 일봉 )
- 종목3; 매수하고나서
4일 후 보유수량 중 40%는 15시 10분에 청산하고
나머지 60%는 6일 후 09시 00분 01초에 청산합니다
- 이것과는 별개로 공통적으로 손익한도청산을 합니다
6. 손익한도청산 조건
- 10% 하락시 즉시 손절매
- 40% 상승시 즉시 이익실현
- 10% 이상 상승 후 매수가격으로 내려오면 즉시 청산
- 20% 이상 상승 후 5% 상승까지 내려오면 즉시 이익실현
- 25% 이상 상승 후 고점 대비 10% 하락하면 즉시 이익실현
- 30% 아성 상승 후 고점 대비 ATR(20)*3 하락하면 즉시 이익실현
7. 청산 주문가격
- 주문하는 시점 기준 (매수호가 - 3호가) 와 (매수호가 - 3%) 중에 큰 금액에 청산 주문
수고하십시요^^
2015-05-16
1846
글번호 223472
답변완료
수식 애러 수정부탁합니다
첫번째,
질문 1143번의 추가질문입니다.
선물 매수 신호시 콜만 포지션, 매도 신호시 풋만 포지션 되야 하나
매도신호는 정상 작동하나 매수신호시 풋이 청산이 되지않습니다.
1. 아래 수식중 오타인지?
Main.MessageList("매수신호발생");
Start = 1;
CallCode1 = Option.GetATMCallRecent(0);
CallCode2 = Option.GetATMCallRecent(-1);
var CallPrice1 = Option.GetBidByCode(CallCode1,2);
var CallPrice2 = Option.GetAskByCode(CallCode2,2);
A1.OrderSell(CallCode1, Vol, CallPrice1, 0);
A1.OrderBuy(CallCode2, Vol, CallPrice2, 0);
//Start와 종목코드 저장
Main.SetUserValue("Start", Start);
Main.SetUserValue("CallCode1", CallCode1);
Main.SetUserValue("CallCode2", CallCode1); <-----이 부분
2. 변수 Vol을 code1은 Vol1, code2는 Vol2 로 두개로 변경 가능한지요?
3. 시스템을 두개 사용시 내부파일에 저장한 var V = Main.GetUserValue("Start"); 와 같이 같은 변수를 쓰게되면 덮어쓰게 되는지? 아니면 각각 시스템과 관련되어 저장되는지요?
var Start;
var CallCode1,CallCode2;
var PutCode1,PutCode2;
function Main_OnStart()
{
Main.MessageList("시작");
//내부파일에 Start로 저장된 값 호출해 V에 저장
var V = Main.GetUserValue("Start");
//0이면 Start는 0
if (V == 0)
Start = 0;
//1이면
if (V == 1)
{
//Start는 1
Start = 1;
//CallCode1에 내부파일 Code1에 저장된 값 호출해 저장
CallCode1 = Main.GetUserValue("Code1");
//CallCode2에 내부파일 Code2에 저장된 값 호출해 저장
CallCode2 = Main.GetUserValue("Code2");
}
if (V == -1)
{ Start = 0;
//Start는 -1
Start = 1;
//PutCode1에 내부파일 Code1에 저장된 값 호출해 저장
PutCode1 = Main.GetUserValue("Code1");
//PutCode2에 내부파일 Code2에 저장된 값 호출해 저장
PutCode2 = Main.GetUserValue("Code2");
}
Main.SetTimer(1, 5000);//5초간격 타이머 셋팅
}
function C1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1 )
{
Main.MessageList("매수신호발생");
Start = 1;
CallCode1 = Option.GetATMCallRecent(0);
CallCode2 = Option.GetATMCallRecent(-1);
var CallPrice1 = Option.GetBidByCode(CallCode1,2);
var CallPrice2 = Option.GetAskByCode(CallCode2,2);
A1.OrderSell(CallCode1, Vol, CallPrice1, 0);
A1.OrderBuy(CallCode2, Vol, CallPrice2, 0);
//Start와 종목코드 저장
Main.SetUserValue("Start", Start);
Main.SetUserValue("CallCode1", CallCode1);
Main.SetUserValue("CallCode2", CallCode1);
}
if (Start == 1 && Signal.signalKind == 2 )
{
Start = 0;
Main.MessageList("매수청산발생");
var BxPrice1 = Option.GetAskByCode(CallCode1, 2);
var BxPrice2 = Option.GetBidByCode(CallCode2, 2);
A1.OrderBuy(CallCode1, Vol, BxPrice1, 0);
A1.OrderSell(CallCode2, Vol, BxPrice2, 0);
//저장값 초기화
Main.SetUserValue("Start", 0);
Main.SetUserValue("Code1", " ");
Main.SetUserValue("Code2", " ");
}
if (Signal.signalKind == 3 )
{
Main.MessageList("매도신호발생");
Start = -1;
PutCode1 = Option.GetATMPutRecent(0);
PutCode2 = Option.GetATMPutRecent(1);
var PutPrice1 = Option.GetBidByCode(PutCode1,2);
var PutPrice2 = Option.GetAskByCode(PutCode2,2);
A1.OrderSell(PutCode1, Vol, PutPrice1 , 0);
A1.OrderBuy(PutCode2, Vol, PutPrice2, 0);
//Start와 종목코드 저장
Main.SetUserValue("Start", Start);
Main.SetUserValue("Code1", PutCode1);
Main.SetUserValue("Code2", PutCode2);
}
if (Start == 1 && Signal.signalKind == 4 )
{
Start = 0;
Main.MessageList("매도청산발생");
var SxPrice1 = Option.GetAskByCode(PutCode1, 2);
var SxPrice2 = Option.GetBidByCode(PutCode2, 2);
A1.OrderBuy(PutCode1, Vol, SxPrice1, 0);
A1.OrderSell(PutCode2, Vol, SxPrice2, 0);
//저장값 초기화
Main.SetUserValue("Start", 0);
Main.SetUserValue("Code1", " ");
Main.SetUserValue("Code2", " ");
}
}
----------------------------------------------------------------------------------------
두번째,
질문 1157번의 추가질문입니다.
콜매도, 풋매도 금액의 합으로 +500000원 익절, -500000원 손절 식을 부탁합니다.
2015-05-02
2028
글번호 223455