커뮤니티

수식

프로필 이미지
자라도
2015-11-22 06:52:55
2180
글번호 223718
답변완료
해외선물(오일,금,유로 fx) 매매시 각각 차트를 2개씩띄워 놓고(차트주기는 동일) 1번차트와 2번 차트에 적용되는 시스템식은 다름 이때 1번차트의 신호를 메인으로 보고 1번차트가 매수면 2번차트는 매수신호에 의해진입 매도신호에의해 청산 1번차트가 매도면 2번차트는 매도신호에 의해진입 매수신호에의해 청산 물론 2번차트에 의해서 보유중이면 1번차트신호가 바뀔시 바로 청산하고요 그런데 예제6. 주기가 다른 여러 차트를 참조해 주문발생하기 중 OnRiseSignal은 연결된 차트에서 완성신호가 발생했을 때 호출되는 이벤트이고 완성신호 정보는 완성신호객체(Signal)가 제공합니다. (위부분이 핵심인듯 한데) 보고 해보려고 하니 비슷한 도움말인데 응용을 해보려니 좀 어렵내요 질문요약 1번차트 매매신호를 기준으로 매수면 2번차트의 매수신호에 의해 진입 매도에 청산 1번차트 매매신호를 기준으로 매도면 2번차트의 매도신호에 의해 진입 매수에 청산 2번차트 수식은 1번차트 수식과는 달라서 (신호가 각각 나옴) 1번신호가 바뀌면 보유중이면 무조건 청산 입니다. 해외선물 3가지 종목을 동시에 매매할겁니다. 감사합니다. 예로 GOLD 1번차트 macd (주기가 50) 골든일때 매수 신호 발생시 GOLD 2번차트 macd (주기가 10) 골든일때 매수해서 데드일때 청산 여기서 GOLD 1번차트 2번차트 주기는 동일 1번차트 macd (주기가 50) 데드일때 매도 신호 발생시 2번차트 macd (주기가 10) 데드일때 매도해서 골든일때 청산 진입에 의해 보유시 1번차트가 반대신호로 나오면 무조건청산 입니다. (((******1번차트의 위의 예시처럼 macd식을 이용할것이아니고 차트에 macd 수식을 적용했을때 발생되어지는 차트신호만 받아서 예제6번처럼 1번차트의 발생신호 이벤트만 받아들여서 2번차트신호에 의해 매매할겁니다******)2번차트는 직전봉이 스토케스틱 30이하침체진입후 현재봉이 앞봉값보다 높을때 매수,,직전봉이 스토케스틱 70이상 과열진입후 현재봉이 앞봉값보다 낮을때 매도)) 입니다. 1번차트에 발생된 신호만 2번차트에서 받아들여 2번차트는 스토케스틱 수식에의해 매매 골드,유로fx,오일 동시매매 ========================================================== ========================================================== 아래수식은 1번문의한 내용을 수식화한것입니다. 그런데 예스트레더작성한것을 예스스팟에서는 syntax 에러가 난다고해서 실행을 못해보고 있습니다. <<<<<<<<<<<<<<< 2번문의 >>>>>>>>>>>>>>>>> input : b_time1(000000),e_time1(240000),목표청산1(3); input : stoK_p11(150),stoK_p12(20),stoK_p13(30); input : ma_p11(15),ma_p12(5),ma_p13(10),ma_p14(80),ma_p15(10),ma_p16(40),ma_p17(35); input : sto1(10),sto2(5); Var:stoK1(0),stoD1(0),TRIXv(0),TRIXsig(0),stok2(0),T(0); stok2 = StochasticsK(sto1,sto2); If b_time1 <= Time and Time <= e_time1 Then { stoK1 = StochasticsK(stoK_p11,stoK_p12); stoD1 = StochasticsD(stoK_p11,stoK_p12,stoK_p13); If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1 and (ma(C,ma_p12)[1] <= ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13)) and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1 and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1 and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1 and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1 Then { T = 1; if MarketPosition == -1 Then ExitShort("매도1청산"); } If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1 and (ma(C,ma_p12)[1] >= ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13)) and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1 and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1 and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1 and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1 Then { T = -1; if MarketPosition == 1 Then ExitLong("매수1청산"); } } if T == 1 then{ if countif(stok2>stok2[1],2) == 1 and stok2[1] < 10 Then buy("매수2"); if countif(stok2<stok2[1],2) == 1 and stok2[1] > 90 Then ExitLong("매수2청산"); } if T == -1 then{ if countif(stok2<stok2[1],2) == 1 and stok2[1] > 90 Then sell("매도2"); if countif(stok2>stok2[1],2) == 1 and stok2[1] < 10 Then ExitShort("매도2청산"); } 답변을 메일로만 받을수있을까요 ? 444422ver@ naver.com
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-11-23 16:44:20

안녕하세요 예스스탁입니다. 수식의 내용은 동일합니다. 스팟식을 3개 만들고 각각 차트와 종목등을 설정하시면 됩니다. 스크립트 객체화면 설정 계좌객체 추가 --> 객체명은 Account1,속성에서 주문낼 종목지정 차트객체 추가 --> 객체명은 Chart1, 속성에서 차트아이디 연결 차트객체 추가 --> 객체명은 Chart2, 속성에서 차트아이디 연결 종목객체 추가 --> 객체명은 MarketData1, 차트 종목과 같은 종목으로 지정 차트1의 신호방향에 따라 차트2에서 신호가 발생하면 주문합니다. 차트에 각 거래를 하는 시스템식을 따로 적용하셔야 합니다. 스팟은 연결된 차트에서 정보를 받게 됩니다. 설정이 원활하지 않으시면 02-3453-1060으로 전화주시기 바랍니다. var T; //스팟 시작시 //차트1 신호포지션이 매수면 1.매도면 -1, 포지션이면 0 function Main_OnStart() { T = 0; if (Chart1.GetOpenContracts() > 0) T = 1; if (Chart1.GetOpenContracts() < 0) T = -1; } //차트1에서 매수진입신호 발생하면 1, 매도진입신호발생하면 -1 function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == 1) { T = 1 } if (Signal.signalKind == 3) { T = -1; } } //차트2에서 신호발생 function Chart2_OnRiseSignal(Signal) { if (T == 1 && Signal.signalKind == 1) { Account1.OrderBuy(Main.GetOrderCode(Signal.code), Signal.count, MarketData1.Ask(5), 2) } if (T == 1 && Signal.signalKind == 1) { Account1.OrderSell(Main.GetOrderCode(Signal.code), Signal.count, MarketData1.Bid(5), 2) } if (T == -1 && Signal.signalKind == 1) { Account1.OrderSell(Main.GetOrderCode(Signal.code), Signal.count, MarketData1.Bid(5), 2) } if (T == -1 && Signal.signalKind == 1) { Account1.OrderBuy(Main.GetOrderCode(Signal.code), Signal.count, MarketData1.Ask(5), 2) } } 즐거운 하루되세요 > 자라도 님이 쓴 글입니다. > 제목 : 수식 > 해외선물(오일,금,유로 fx) 매매시 각각 차트를 2개씩띄워 놓고(차트주기는 동일) 1번차트와 2번 차트에 적용되는 시스템식은 다름 이때 1번차트의 신호를 메인으로 보고 1번차트가 매수면 2번차트는 매수신호에 의해진입 매도신호에의해 청산 1번차트가 매도면 2번차트는 매도신호에 의해진입 매수신호에의해 청산 물론 2번차트에 의해서 보유중이면 1번차트신호가 바뀔시 바로 청산하고요 그런데 예제6. 주기가 다른 여러 차트를 참조해 주문발생하기 중 OnRiseSignal은 연결된 차트에서 완성신호가 발생했을 때 호출되는 이벤트이고 완성신호 정보는 완성신호객체(Signal)가 제공합니다. (위부분이 핵심인듯 한데) 보고 해보려고 하니 비슷한 도움말인데 응용을 해보려니 좀 어렵내요 질문요약 1번차트 매매신호를 기준으로 매수면 2번차트의 매수신호에 의해 진입 매도에 청산 1번차트 매매신호를 기준으로 매도면 2번차트의 매도신호에 의해 진입 매수에 청산 2번차트 수식은 1번차트 수식과는 달라서 (신호가 각각 나옴) 1번신호가 바뀌면 보유중이면 무조건 청산 입니다. 해외선물 3가지 종목을 동시에 매매할겁니다. 감사합니다. 예로 GOLD 1번차트 macd (주기가 50) 골든일때 매수 신호 발생시 GOLD 2번차트 macd (주기가 10) 골든일때 매수해서 데드일때 청산 여기서 GOLD 1번차트 2번차트 주기는 동일 1번차트 macd (주기가 50) 데드일때 매도 신호 발생시 2번차트 macd (주기가 10) 데드일때 매도해서 골든일때 청산 진입에 의해 보유시 1번차트가 반대신호로 나오면 무조건청산 입니다. (((******1번차트의 위의 예시처럼 macd식을 이용할것이아니고 차트에 macd 수식을 적용했을때 발생되어지는 차트신호만 받아서 예제6번처럼 1번차트의 발생신호 이벤트만 받아들여서 2번차트신호에 의해 매매할겁니다******)2번차트는 직전봉이 스토케스틱 30이하침체진입후 현재봉이 앞봉값보다 높을때 매수,,직전봉이 스토케스틱 70이상 과열진입후 현재봉이 앞봉값보다 낮을때 매도)) 입니다. 1번차트에 발생된 신호만 2번차트에서 받아들여 2번차트는 스토케스틱 수식에의해 매매 골드,유로fx,오일 동시매매 ========================================================== ========================================================== 아래수식은 1번문의한 내용을 수식화한것입니다. 그런데 예스트레더작성한것을 예스스팟에서는 syntax 에러가 난다고해서 실행을 못해보고 있습니다. <<<<<<<<<<<<<<< 2번문의 >>>>>>>>>>>>>>>>> input : b_time1(000000),e_time1(240000),목표청산1(3); input : stoK_p11(150),stoK_p12(20),stoK_p13(30); input : ma_p11(15),ma_p12(5),ma_p13(10),ma_p14(80),ma_p15(10),ma_p16(40),ma_p17(35); input : sto1(10),sto2(5); Var:stoK1(0),stoD1(0),TRIXv(0),TRIXsig(0),stok2(0),T(0); stok2 = StochasticsK(sto1,sto2); If b_time1 <= Time and Time <= e_time1 Then { stoK1 = StochasticsK(stoK_p11,stoK_p12); stoD1 = StochasticsD(stoK_p11,stoK_p12,stoK_p13); If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1 and (ma(C,ma_p12)[1] <= ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13)) and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1 and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1 and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1 and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1 Then { T = 1; if MarketPosition == -1 Then ExitShort("매도1청산"); } If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1 and (ma(C,ma_p12)[1] >= ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13)) and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1 and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1 and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1 and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1 Then { T = -1; if MarketPosition == 1 Then ExitLong("매수1청산"); } } if T == 1 then{ if countif(stok2>stok2[1],2) == 1 and stok2[1] < 10 Then buy("매수2"); if countif(stok2<stok2[1],2) == 1 and stok2[1] > 90 Then ExitLong("매수2청산"); } if T == -1 then{ if countif(stok2<stok2[1],2) == 1 and stok2[1] > 90 Then sell("매도2"); if countif(stok2>stok2[1],2) == 1 and stok2[1] < 10 Then ExitShort("매도2청산"); } 답변을 메일로만 받을수있을까요 ? 444422ver@ naver.com