커뮤니티
수식 문의 드립니다.
2014-11-14 11:31:30
164
글번호 80381
안녕하세요..열심히 수식을 만들고 있는데 잘 되지 않네요^^ 일단 아래 수식에 RSI시그널을 넣지 못했는데 시그널(6)을 넣어서 수식1과 수식2를 수정 해주시기 바라고요, 수식1과 수식2를 합성한 것을 따로 작성해주시면 됩니다. 그리고 완성되면, 신호발생 후 다음봉 시가 또는 한호가 위 청산을 할 수 있도록 변수처리가 가능했으면 합니다.
수식1
input : RSIP(14),sto1(18),sto2(6),sto3(6);
var : RSIV(0),STOK(0),STOD(0);
RSIV = RSI(RSIP);
STOK = StochasticsK(sto1,sto2);
STOD = StochasticsD(sto1,sto2,sto3);
if RSIV <= 46 and CrossDown(STOK,13) Then
buy("매수");
if RSIV >= 54 and CrossUp(STOK,87) Then
ExitLong("매수청산");
if RSIV >= 54 and CrossUp(STOK,87) Then
Sell("매도");
if RSIV <= 46 and CrossDown(STOK,13) Then
ExitShort("매도청산");
/*
RSI(14,6) 지표값 46 이하, SLOW STO(18,6,6) 지표값 13 이하일때 매수 진입,
RSI(14,6) 지표값 54 이상, SLOW STO(18,6,6) 지표값 87 이상일때 매수청산,
RSI(14,6) 지표값 54 이상, SLOW STO(18,6,6) 지표값 87 이상일때 매도 진입,
RSI(14,6) 지표값 46 이하, SLOW STO(25,6,6) 지표값 85 이상일때 매도 청산,
수식2
input : RSIP(21),sto1(25),sto2(6),sto3(6);
var : RSIV(0),STOK(0),STOD(0);
RSIV = RSI(RSIP);
STOK = StochasticsK(sto1,sto2);
STOD = StochasticsD(sto1,sto2,sto3);
if RSIV <= 46 and CrossDown(STOK,15) Then
buy("매수진입");
if RSIV >= 54 and CrossUp(STOK,85) Then
ExitLong("매수청산");
if RSIV >= 54 and CrossUp(STOK,85) Then
Sell("매도진입");
if RSIV <= 46 and CrossDown(STOK,15) Then
ExitShort("매도청산");
/*
RSI(21,9) 지표값 46 이하, SLOW STO(25,6,6) 지표값 15 이하
RSI(21,9) 지표값 54 이상, SLOW STO(25,6,6) 지표값 85 이상
RSI(21,9) 지표값 54 이상, SLOW STO(25,6,6) 지표값 85 이상
RSI(21,9) 지표값 46 이하, SLOW STO(25,6,6) 지표값 15 이하
답변 1
예스스탁 예스스탁 답변
2014-11-14 17:36:45
안녕하세요
예스스탁입니다.
작성하신 식은 리버스가 되는 식입니다.
진입은 종가에 발생하고 청산만 다음봉시가나 한호가 위로 지정할수 없습니다.
진입청산 모두 다음봉 시가+-N틱에 청산이 되게 작성했습니다.
N을 0으로 하면 시가,1이상 숫자로 지정하시면 해당 틱만큼 가감해 진입합니다.
식에 RSIS로 RSI 시그널을 추가만 했습니다.
각 진입청산식의 기준이 시그널이면 조건식의 RSIV를 RSIS로 변경하시면 됩니다.
1.
input : RSIP(14),RSIsig(6),sto1(18),sto2(6),sto3(6),N(0);
var : RSIV(0),RSIS(0),STOK(0),STOD(0);
RSIV = RSI(RSIP);
RSIS = ma(RSIV,RSISig);
STOK = StochasticsK(sto1,sto2);
STOD = StochasticsD(sto1,sto2,sto3);
if RSIV <= 46 and CrossDown(STOK,13) Then
buy("매수",AtStop,NextBarOpen+PriceScale*N);
if RSIV >= 54 and CrossUp(STOK,87) Then
ExitLong("매수청산",AtStop,NextBarOpen-PriceScale*N);
if RSIV >= 54 and CrossUp(STOK,87) Then
Sell("매도",AtStop,NextBarOpen-+PriceScale*N);
if RSIV <= 46 and CrossDown(STOK,13) Then
ExitShort("매도청산",AtStop,NextBarOpen+PriceScale*N);
2.
input : RSIP(21),RSIsig(6),sto1(25),sto2(6),sto3(6),N(0);
var : RSIV(0),RSIS(0),STOK(0),STOD(0);
RSIV = RSI(RSIP);
RSIS = ma(RSIV,RSISig);
STOK = StochasticsK(sto1,sto2);
STOD = StochasticsD(sto1,sto2,sto3);
if RSIV <= 46 and CrossDown(STOK,15) Then
buy("매수진입",AtStop,NextBarOpen+PriceScale*N);
if RSIV >= 54 and CrossUp(STOK,85) Then
ExitLong("매수청산",AtStop,NextBarOpen-PriceScale*N);
if RSIV >= 54 and CrossUp(STOK,85) Then
Sell("매도진입",AtStop,NextBarOpen-PriceScale*N);
if RSIV <= 46 and CrossDown(STOK,15) Then
ExitShort("매도청산",AtStop,NextBarOpen+PriceScale*N);
3.
input : RSIP(14),RSIsig(6),sto1(18),sto2(6),sto3(6),N(0);
var : RSIV(0),RSIS(0),STOK(0),STOD(0);
RSIV = RSI(RSIP);
RSIS = ma(RSIV,RSISig);
STOK = StochasticsK(sto1,sto2);
STOD = StochasticsD(sto1,sto2,sto3);
if RSIV <= 46 and CrossDown(STOK,13) Then
buy("매수1",AtStop,NextBarOpen+PriceScale*N);
if RSIV >= 54 and CrossUp(STOK,87) Then
ExitLong("매수청산1",AtStop,NextBarOpen-PriceScale*N);
if RSIV >= 54 and CrossUp(STOK,87) Then
Sell("매도1",AtStop,NextBarOpen-PriceScale*N);
if RSIV <= 46 and CrossDown(STOK,13) Then
ExitShort("매도청산1",AtStop,NeaxtBarOpen+PriceScale*N);
if RSIV <= 46 and CrossDown(STOK,15) Then
buy("매수2",AtStop,NextBarOpen+PriceScale*N);
if RSIV >= 54 and CrossUp(STOK,85) Then
ExitLong("매수청산2",AtStop,NextBarOpen-PriceScale*N);
if RSIV >= 54 and CrossUp(STOK,85) Then
Sell("매도2",AtStop,NextBarOpen-PriceScale*N);
if RSIV <= 46 and CrossDown(STOK,15) Then
ExitShort("매도청산2",AtStop,NextBarOpen+PriceScale*N);
즐거운 하루되세요
> 하리마우 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다.
> 안녕하세요..열심히 수식을 만들고 있는데 잘 되지 않네요^^ 일단 아래 수식에 RSI시그널을 넣지 못했는데 시그널(6)을 넣어서 수식1과 수식2를 수정 해주시기 바라고요, 수식1과 수식2를 합성한 것을 따로 작성해주시면 됩니다. 그리고 완성되면, 신호발생 후 다음봉 시가 또는 한호가 위 청산을 할 수 있도록 변수처리가 가능했으면 합니다.
수식1
input : RSIP(14),sto1(18),sto2(6),sto3(6);
var : RSIV(0),STOK(0),STOD(0);
RSIV = RSI(RSIP);
STOK = StochasticsK(sto1,sto2);
STOD = StochasticsD(sto1,sto2,sto3);
if RSIV <= 46 and CrossDown(STOK,13) Then
buy("매수");
if RSIV >= 54 and CrossUp(STOK,87) Then
ExitLong("매수청산");
if RSIV >= 54 and CrossUp(STOK,87) Then
Sell("매도");
if RSIV <= 46 and CrossDown(STOK,13) Then
ExitShort("매도청산");
/*
RSI(14,6) 지표값 46 이하, SLOW STO(18,6,6) 지표값 13 이하일때 매수 진입,
RSI(14,6) 지표값 54 이상, SLOW STO(18,6,6) 지표값 87 이상일때 매수청산,
RSI(14,6) 지표값 54 이상, SLOW STO(18,6,6) 지표값 87 이상일때 매도 진입,
RSI(14,6) 지표값 46 이하, SLOW STO(25,6,6) 지표값 85 이상일때 매도 청산,
수식2
input : RSIP(21),sto1(25),sto2(6),sto3(6);
var : RSIV(0),STOK(0),STOD(0);
RSIV = RSI(RSIP);
STOK = StochasticsK(sto1,sto2);
STOD = StochasticsD(sto1,sto2,sto3);
if RSIV <= 46 and CrossDown(STOK,15) Then
buy("매수진입");
if RSIV >= 54 and CrossUp(STOK,85) Then
ExitLong("매수청산");
if RSIV >= 54 and CrossUp(STOK,85) Then
Sell("매도진입");
if RSIV <= 46 and CrossDown(STOK,15) Then
ExitShort("매도청산");
/*
RSI(21,9) 지표값 46 이하, SLOW STO(25,6,6) 지표값 15 이하
RSI(21,9) 지표값 54 이상, SLOW STO(25,6,6) 지표값 85 이상
RSI(21,9) 지표값 54 이상, SLOW STO(25,6,6) 지표값 85 이상
RSI(21,9) 지표값 46 이하, SLOW STO(25,6,6) 지표값 15 이하
다음글
이전글