예스스탁
예스스탁 답변
2021-02-25 14:52:42
안녕하세요
예스스탁입니다.
switch가 1이면 반대방향진입으로 청산을 하고 0이면 반대방향진입으로 청산이 되지 않습니다.
Input : shortPeriod(12), longPeriod(26),sigPeriod(9),매수기준(0),매도기준(0);
Input : Period(12), Period1(5), Period2(5);
input : switch(1),수익틱(40),수익감소율(40),손절틱(30);
Var : macdv(0),macds(0),stok(0),stod(0);
macdv = MACD(shortPeriod, longPeriod);
macds = ema(macdv,sigPeriod);
stok = StochasticsK(Period,Period1);
stod = StochasticsD(Period,Period1,Period2);
If C > DayOpen and CrossUP(stok, stod) and macds >= 매수기준 Then
{
if (switch == 1 and (MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry > 1))) or
(switch == 0 and MarketPosition == 0) Then
Buy();
}
If C < DayOpen and CrossDown(stok, stod) and macds <= 매도기준 Then
{
if (switch == 1 and (MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry > 1))) or
(switch == 0 and MarketPosition == 0) Then
sell();
}
if MarketPosition == 1 and Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*수익틱 Then
{
ExitLong("bx",AtStop,Highest(H,BarsSinceEntry)-abs(Highest(H,BarsSinceEntry)-EntryPrice)*(수익감소율/100));
}
if MarketPosition == -1 and Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*수익틱 Then
{
ExitShort("sx",AtStop,lowest(L,BarsSinceEntry)-abs(Lowest(L,BarsSinceEntry)-EntryPrice)*(수익감소율/100));
}
SetStopLoss(PriceScale*손절틱,PointStop);
즐거운 하루되세요
> 고르면상한가 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 1) 매수진입 조건 :
당일 시가보다 현시세가 위인경우에만 매수진입 조건(컨디션)
스토캐스틱이 크로스업 할 경우(기본값) and
Macd-osc에서 sig(변수) 값 이 특정값 이상일 경우
2) 매수청산 조건 :
매도 신호가 발생하면 청산(익절조건에 값이 없는 경우) or 익절조건에 값이 설정된 경우
3) 매도진입 조건 :
당일 시가보다 현시세가 아래인 경우에만 매도진입 조건(컨디션)
스토캐스틱이 크로스업 할 경우(기본값) and
Macd-osc에서 sig(변수) 값 이 특정값 이하일 경우 진입조건
4) 매도청산 조건 :
매수 신호가 발생하면 청산(익절조건에 값이 없는 경우) or 익절조건에 값이 설정된 경우
5) 익절 조건 : 40틱 수익이후 최대수익틱 대비 40%하락시
6) 손절 조건 : 30틱
7) 기타
기본적으로 당일시가를 기준으로 높을 경우에만 매수로 진입하고 매도시그널은 매수 청산 신호로만 사용됨.
낮을 경우에만 매도로 진입하고 매수시그널은 매도 청산신호로만 사용됨
위 내용이 옵션으로 on/off를 할수 있으면 좋겠습니다.
그리고 시그널 발생후 바로 다음봉에서 발생되는 봉의 경우 발생하지 않도록 처리하고 싶습니다.
예를들면 매수 시그널이 발생되고 바로 다음봉에서 매도 시그널이 나오는 경우는 매도 시그널을 발생시키지 않고 그 다음봉부터 판단한다.