예스스탁
예스스탁 답변
2020-01-14 11:02:32
안녕하세요
예스스탁입니다.
1
전략 적용이후에만 신호가 발생하게는 작성이 가능하지 않습니다.
2
기본적으로 시스템은 설정에서 피라미딩을 설정하지 않으면
동일포지션으로 추가로 진입하지 않습니다. 진입/청산만 반복하게 됩니다.
추가로 진입하지 않고자 하시면 피라미딩을 설정하지 않으셔야 합니다.
수식에 추가로 다른 내용이 있어 피라미딩을 설정하셔야 한다면
진입식을 아래와 같이 조건을 추가해 주시면 해당 진입으로는 피라미딩이 되지 않습니다.
if MarketPosition <= 0 and Xcond == false and crossup(kt,60) Then
buy();
if MarketPosition <= 0 and Xcond == false and crossup(kt,-60) Then
buy();
if MarketPosition >= 0 and Xcond == false and CrossDown(kt,60) Then
sell();
if MarketPosition >= 0 and Xcond == false and CrossDown(kt,-60) Then
sell();
3
해당 수식이 스위칭이 가능한 내용입니다.
주문시작신호를 모든신호로 설정하고 적용하시고 첫 진입신호가 스위칭이면
청산과 진입에 대해 모두 주문이 나가게 되므로 설정하신 수량의 두배가 진입되게 됩니다.
최초에 자동주문을 시작하실 때는 진입신호로 설정하시면
차트에 적용이후에 첫진입신호부터 주문을 집행하게 됩니다.
첫신호가 스위칭이면 청산에 대해서는 신호만 표시하고 주문을 집행하지 않습니다.
첫진입신호가 발생한 이후에는 모든신호로 적용해 주시면 됩니다.
즐거운 하루되세요
> 사즉생 님이 쓴 글입니다.
> 제목 : 수정문의 드립니다~
> Input : 당일수익틱수(21),당일손실틱수(100);
input : t5(5),p13(13),p5(5);
var : j(0),n(0),d(0),kt(0),kts(0);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if sdate != sdate[1] Then
SetStopEndofday(050000);
if Bdate != Bdate[1] Then
{
SetStopEndofday(0);
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
j = c-c[t5];
n = ema(ema(j,p13),p5);
d = ema(ema(abs(j),p13),p5);
kt = 100*n/d;
kts = ema(kt,6);
if Xcond == false and crossup(kt,60) Then
buy();
if Xcond == false and crossup(kt,-60) Then
buy();
if Xcond == false and CrossDown(kt,60) Then
sell();
if Xcond == false and CrossDown(kt,-60) Then
sell();
if MarketPosition == 1 then{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
hts 접속하고 전략실행 후 첫 신호 진입 이후부터 조건이 성립되게 수식을 수정할 수 있을까요?
그리고 +60 하향 돌파 시 매도 진입하고 물량이 청산 안되었을 때 -60을 다시 하향 돌파하니 추가로 물량이 매도가 되는데
물량 보유시 추가 매도 되지 않게,
반대로도 -60 상향 돌파 시 매수 진입하고 물량이 청산 안되었을 때 +60을 다시 상향 돌파하면 추가로 매수 되지 않게 수정 부탁드립니다~
그리고 전략실행 시작하고 첫 신호나오면 매매수량을 1개로 했는데 2개씩 진입이돼서 스위칭때 자동으로 물량 청산되버는데.. 첫 신호에 1계약만 들어가게 하려면
피라미딩 설정할 때 진입 신호로 설정을 했다가 진입하고 나서 모든신호 진입으로 변경을 해야하나요?
첫 진입 때 1계약만 들어갈 수 있게 알려주세요
감사합니다.
hts 접속 후 전략실행을 했을 때 당일수익이나 당일손실 도달 시,
저는 매매가 되지 않았는데 프로그램이 그 값을 인식해서 자동 종료가 되어있거나,
제값에 수익청산이 안되어서 질문 드렸습니다.
그럼 혹시 시간대를 한국시간 오후 3시부터 새벽 5시까지를 기준으로 잡고
그 시간에 거래되는 내역만을 가지고 당일수익/손실을 설정할 수는 없나요?
답변감사합니다~!
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수정문의 드립니다~
>
안녕하세요
예스스탁입니다.
1
전략 적용이후에만 신호가 발생하게는 작성이 가능하지 않습니다.
2
기본적으로 시스템은 설정에서 피라미딩을 설정하지 않으면
동일포지션으로 추가로 진입하지 않습니다. 진입/청산만 반복하게 됩니다.
추가로 진입하지 않고자 하시면 피라미딩을 설정하지 않으셔야 합니다.
수식에 추가로 다른 내용이 있어 피라미딩을 설정하셔야 한다면
진입식을 아래와 같이 조건을 추가해 주시면 해당 진입으로는 피라미딩이 되지 않습니다.
if MarketPosition <= 0 and Xcond == false and crossup(kt,60) Then
buy();
if MarketPosition <= 0 and Xcond == false and crossup(kt,-60) Then
buy();
if MarketPosition >= 0 and Xcond == false and CrossDown(kt,60) Then
sell();
if MarketPosition >= 0 and Xcond == false and CrossDown(kt,-60) Then
sell();
3
해당 수식이 스위칭이 가능한 내용입니다.
주문시작신호를 모든신호로 설정하고 적용하시고 첫 진입신호가 스위칭이면
청산과 진입에 대해 모두 주문이 나가게 되므로 설정하신 수량의 두배가 진입되게 됩니다.
최초에 자동주문을 시작하실 때는 진입신호로 설정하시면
차트에 적용이후에 첫진입신호부터 주문을 집행하게 됩니다.
첫신호가 스위칭이면 청산에 대해서는 신호만 표시하고 주문을 집행하지 않습니다.
첫진입신호가 발생한 이후에는 모든신호로 적용해 주시면 됩니다.
즐거운 하루되세요
> 사즉생 님이 쓴 글입니다.
> 제목 : 수정문의 드립니다~
> Input : 당일수익틱수(21),당일손실틱수(100);
input : t5(5),p13(13),p5(5);
var : j(0),n(0),d(0),kt(0),kts(0);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if sdate != sdate[1] Then
SetStopEndofday(050000);
if Bdate != Bdate[1] Then
{
SetStopEndofday(0);
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
j = c-c[t5];
n = ema(ema(j,p13),p5);
d = ema(ema(abs(j),p13),p5);
kt = 100*n/d;
kts = ema(kt,6);
if Xcond == false and crossup(kt,60) Then
buy();
if Xcond == false and crossup(kt,-60) Then
buy();
if Xcond == false and CrossDown(kt,60) Then
sell();
if Xcond == false and CrossDown(kt,-60) Then
sell();
if MarketPosition == 1 then{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
hts 접속하고 전략실행 후 첫 신호 진입 이후부터 조건이 성립되게 수식을 수정할 수 있을까요?
그리고 +60 하향 돌파 시 매도 진입하고 물량이 청산 안되었을 때 -60을 다시 하향 돌파하니 추가로 물량이 매도가 되는데
물량 보유시 추가 매도 되지 않게,
반대로도 -60 상향 돌파 시 매수 진입하고 물량이 청산 안되었을 때 +60을 다시 상향 돌파하면 추가로 매수 되지 않게 수정 부탁드립니다~
그리고 전략실행 시작하고 첫 신호나오면 매매수량을 1개로 했는데 2개씩 진입이돼서 스위칭때 자동으로 물량 청산되버는데.. 첫 신호에 1계약만 들어가게 하려면
피라미딩 설정할 때 진입 신호로 설정을 했다가 진입하고 나서 모든신호 진입으로 변경을 해야하나요?
첫 진입 때 1계약만 들어갈 수 있게 알려주세요
감사합니다.