커뮤니티

수식 문의드립니다. ^^

프로필 이미지
jarlye
2013-08-09 08:06:22
160
글번호 66268
답변완료
수식 답변 주셔서 너무너무 감사합니다. ^^ 질문 1. 시가보다 300원이 상승할때 즉시 매도하는 수식을 원하는데요 봉이 완성되었을때가 아니라 말그대로 현재가가 시가보다 300원이 상승할때 매도하는 수식은 없는건가요?? 장 시작하고 22초후에 시가보다 300원이 상승하면 바로 매도 주문 나가게 하고 싶습니다. ^^ (중복진입 불허) 질문 2. if식은 봉이 완성되었을때 즉 1분봉이면 300원이 상승하더라도 즉시 주문이 나가지 않고 봉이 완성되는때(예: 600원 상승) 주문이 나간다고 알고 있는데요 그렇다면 if식이 아닌 지정가격 즉 "시가+300원"일때 매도 하는 식은 없나요? 아래의 수식은 답변주신 내용을 조금 수정한 건데요. 이게 맞는지 확인 좀 부탁드립니다. ^^ 시가보다 300원 상승할때 10계약 매도하고 300원 하락할때 10계약 매수하고(중복거래 안함) 시가보다 500원 상승할때 10계약 매도하고 500원 하락할때 10계약 매수하고(중복거래 안함) 3시 정각에 신호에 따라 매매된 잔고의 20%를 청산 3시 1분에 신호에 따라 매매된 잔고의 20%를 청산 3시 2분에 신호에 따라 매매된 잔고의 20%를 청산 3시 3분에 신호에 따라 매매된 잔고의 20%를 청산 3시 4분에 잔고의 전량 청산 아래의 수식이 위의 내용이 맞는가요~? var : cnt(0),scount(0),bcount(0); scount = 0; bcount = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) and IsEntryName("s",cnt) == true Then scount = scount+1; if sdate == EntryDate(cnt) and IsEntryName("b",cnt) == true Then bcount = bcount+1; } if MarketPosition <= 0 and stime < 150000 and scount < 1 Then Sell("s",atlimit,dayopen+300,10); if MarketPosition >= 0 and stime < 150000 and scount < 1 Then buy("b",atlimit,dayopen-300,10); if MarketPosition <= 0 and stime < 150000 and scount < 1 Then Sell("s",atlimit,dayopen+500,10); if MarketPosition >= 0 and stime < 150000 and scount < 1 Then buy("b",atlimit,dayopen-500,10); if MarketPosition == 1 Then{ if stime == 145900 Then exitlong("bx1",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150000 Then exitlong("bx2",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150100 Then exitlong("bx3",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150200 Then exitlong("bx4",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150200 Then exitlong("bx5",AtMarket); } if MarketPosition == -1 Then{ if stime == 145900 Then ExitShort("sx1",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150000 Then ExitShort("sx2",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150100 Then ExitShort("sx3",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150200 Then ExitShort("sx4",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150200 Then ExitShort("sx5",AtMarket); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-08-09 14:08:33

안녕하세요 예스스탁입니다. 기존에 작성해 드린식이 지정한 가격에 도달하면 즉시 신호가 발생하고 하루에 한번씩만 신호가 발생하게 작성해 드린 식입니다. 현재 식상에 atlimit타입이 사용이 되었는데 atlimit타입은 매수주문 함수에서는 봉완성시에 특정가격을 셋팅하고 다음봉에서 특정가격 이하의 시세가 발생하면 즉시 신호가 발생하고 매도주문 함수에서는 봉완성시에 특정가격을 셋팅하고 다음봉에서 특정가격 이상의 시세가 발생하면 즉시 신호가 발생하는 타입니다. 봉완성하고 다음봉 감시하므로 차트상 첫봉에서는 신호가 발생하지 않으므로 차트를 짧은 주기를 사용하시면 됩니다. 차트는 초단위로 지정하실 수도 있고 틱차트로도 설정하실 수 있습니다. 좀더 자세한 내용 원하시면 02-3453-1060으로 전화주시기 바랍니다. 즐거운 하루되세요 > jarlye 님이 쓴 글입니다. > 제목 : 수식 문의드립니다. ^^ > 수식 답변 주셔서 너무너무 감사합니다. ^^ 질문 1. 시가보다 300원이 상승할때 즉시 매도하는 수식을 원하는데요 봉이 완성되었을때가 아니라 말그대로 현재가가 시가보다 300원이 상승할때 매도하는 수식은 없는건가요?? 장 시작하고 22초후에 시가보다 300원이 상승하면 바로 매도 주문 나가게 하고 싶습니다. ^^ (중복진입 불허) 질문 2. if식은 봉이 완성되었을때 즉 1분봉이면 300원이 상승하더라도 즉시 주문이 나가지 않고 봉이 완성되는때(예: 600원 상승) 주문이 나간다고 알고 있는데요 그렇다면 if식이 아닌 지정가격 즉 "시가+300원"일때 매도 하는 식은 없나요? 아래의 수식은 답변주신 내용을 조금 수정한 건데요. 이게 맞는지 확인 좀 부탁드립니다. ^^ 시가보다 300원 상승할때 10계약 매도하고 300원 하락할때 10계약 매수하고(중복거래 안함) 시가보다 500원 상승할때 10계약 매도하고 500원 하락할때 10계약 매수하고(중복거래 안함) 3시 정각에 신호에 따라 매매된 잔고의 20%를 청산 3시 1분에 신호에 따라 매매된 잔고의 20%를 청산 3시 2분에 신호에 따라 매매된 잔고의 20%를 청산 3시 3분에 신호에 따라 매매된 잔고의 20%를 청산 3시 4분에 잔고의 전량 청산 아래의 수식이 위의 내용이 맞는가요~? var : cnt(0),scount(0),bcount(0); scount = 0; bcount = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) and IsEntryName("s",cnt) == true Then scount = scount+1; if sdate == EntryDate(cnt) and IsEntryName("b",cnt) == true Then bcount = bcount+1; } if MarketPosition <= 0 and stime < 150000 and scount < 1 Then Sell("s",atlimit,dayopen+300,10); if MarketPosition >= 0 and stime < 150000 and scount < 1 Then buy("b",atlimit,dayopen-300,10); if MarketPosition <= 0 and stime < 150000 and scount < 1 Then Sell("s",atlimit,dayopen+500,10); if MarketPosition >= 0 and stime < 150000 and scount < 1 Then buy("b",atlimit,dayopen-500,10); if MarketPosition == 1 Then{ if stime == 145900 Then exitlong("bx1",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150000 Then exitlong("bx2",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150100 Then exitlong("bx3",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150200 Then exitlong("bx4",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150200 Then exitlong("bx5",AtMarket); } if MarketPosition == -1 Then{ if stime == 145900 Then ExitShort("sx1",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150000 Then ExitShort("sx2",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150100 Then ExitShort("sx3",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150200 Then ExitShort("sx4",AtMarket,def,"",int(MaxContracts*0.2),1); if stime == 150200 Then ExitShort("sx5",AtMarket); }