커뮤니티
수식 문의드립니다. ^^
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);
}
다음글
이전글