커뮤니티

수식 문의드립니다.

프로필 이미지
극동해
2013-07-19 00:07:10
1217
글번호 222455
답변완료
다음과 같은 전략을 작성하려고 하는데요. 1. 진입(매수인 경우) 차트A 그리고 차트B에서 매수신호가 발생하면 선물 매도1호가 1개 매수진입한다. (챠트마다 매수신호가 발생하는 시기가 다르므로 한 챠트에서 매수신호가 발생하는 시 점에 다른 챠트의 신호상태를 체크해서 동일 방향이면 매수진입하는 방법) 2. 청산(매수청산인 경우) 챠트A 또는 챠트B에서 매수청산신호(익절) 또는 매도신호가 발생하면 선물 매수1호가 1개 청산한다. 매도는 이와 반대로 되면 될 것 같은데요. 수식 좀 부탁드립니다. 감사합니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-07-22 11:39:21

안녕하세요 예스스탁입니다. 스크립트 객체화면에서 차트객체 2개, 종목객체1개, 계좌객체 1개를 설정하시고 사용하셔야 합니다 차트객체1 --> 객체명 Chart1 --> 속성에서 아이디 연결 차트객체2 --> 객체명 Chart2 --> 속성에서 아이디 연결 종목객체 --> 객체명 MarketData1 --> 속석에서 선물로 지정 계좌객체 --> 객체명 Account1 --> 속송에서 선옵게좌 선택 스팟 수식은 기본틀만 작성해 드립니다. 아래식 참고하셔서 수정 보완해 사용하시기 바랍니다. 각 차트별로 신호의 종류를 저장하는 변수가 S1, S2입니다. 2개다 1을 기록하면 선물 매수주문 하고 MP는 1 2개다 3을 기록하면 선물 매도주문 하고 MP는 -1 MP가 1인 상태에서 차트1이나 차트2에서 매수청산신호나 매도신호 발생하면 잔고상 선물 매수포지션 있는지 확인하고 선물 매도주문,MP는 0 MP가 -1인 상태에서 차트1이나 차트2에서 매도청산신호나 매수신호 발생하면 잔고상 선물 매도포지션 있는지 확인하고 선물 매수주문, MP는 0 var S1; var S2; var MP; function Main_OnStart() { S1 = 0; S2 = 0; MP = 0; } function Chart1_OnRiseSignal(Signal) { S1 = Signal.signalKind; if (S1 == 1 && S2 == 1) { Account1.OrderBuy(MarketData1.code, 1, MarketData1.Ask(1), 0); MP = 1; } if (S1 == 3 && S2 == 3) { Account1.OrderSell(MarketData1.code, 1, MarketData1.Bid(1), 0); MP = -1; } if (MP == 1 &&(S1 == 2 || S1 == 3)) { MP = 0; Account1.SetBalanceItem(MarketData1.code, 0); if (Account1.Balance.position == 2) { Account1.OrderSell(MarketData1.code, 1, MarketData1.Bid(1), 0); } } if (MP == -1 && (S1 == 4 || S1 == 1)) { MP = 0; Account1.SetBalanceItem(MarketData1.code, 0); if (Account1.Balance.position == 1) { Account1.OrderBuy(MarketData1.code, 1, MarketData1.Ask(1), 0); } } } function Chart2_OnRiseSignal(Signal) { S2 = Signal.signalKind; if (S2 == 1 && S1 == 1) { Account1.OrderBuy(MarketData1.code, 1, MarketData1.Ask(1), 0); MP = 1; } if (S2 == 3 && S1 == 3) { Account1.OrderSell(MarketData1.code, 1, MarketData1.Ask(1), 0); MP = -1; } if (MP == 1 && (S2 == 2 || S2 == 3)) { MP = 0; Account1.SetBalanceItem(MarketData1.code, 0); if (Account1.Balance.position == 2) { Account1.OrderSell(MarketData1.code, 1, MarketData1.Bid(1), 0); } } if (MP == -1 && (S2 == 4 || S2 == 1)) { MP = 0; Account1.SetBalanceItem(MarketData1.code, 0); if (Account1.Balance.position == 1) { Account1.OrderBuy(MarketData1.code, 1, MarketData1.Ask(1), 0); } } } 즐거운 하루되세요 > 극동해 님이 쓴 글입니다. > 제목 : 수식 문의드립니다. > 다음과 같은 전략을 작성하려고 하는데요. 1. 진입(매수인 경우) 차트A 그리고 차트B에서 매수신호가 발생하면 선물 매도1호가 1개 매수진입한다. (챠트마다 매수신호가 발생하는 시기가 다르므로 한 챠트에서 매수신호가 발생하는 시 점에 다른 챠트의 신호상태를 체크해서 동일 방향이면 매수진입하는 방법) 2. 청산(매수청산인 경우) 챠트A 또는 챠트B에서 매수청산신호(익절) 또는 매도신호가 발생하면 선물 매수1호가 1개 청산한다. 매도는 이와 반대로 되면 될 것 같은데요. 수식 좀 부탁드립니다. 감사합니다.