예스스탁
예스스탁 답변
2021-11-25 11:49:39
안녕하세요
예스스탁입니다.
문의하신 내용을 정확히 이해하지 못했습니다.
해당수식의 진입 자체에 시간에 대한 제한은 없습니다.
최고가나 최저가 계산의 기준시간만 10시입니다.
10이후 최고가와 최저가가 일정틱수 반대방향 조정이 없이 상승/하락 하면 진입을 하게 되는 내용입니다.
만약 청산이후에 새로 진입을 또 하고자 하시면
청산후 첫봉에서 각 값을 초기화하고 다시 체크하게 하시면 됩니다.
혹은 의도하시는 다른 초기화시점이 있으시면 자세한 내용을 올려주셔야 수정해 드릴수 있습니다.
input : ntime(100000),nn(10),mm(50),aa(10),bb(50);
var : OO(0),HH(0),LL(0),HL(0),LH(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
Else
{
#거래횟수 증가(청산이 되서서 거래완료)
if TotalTrades > TotalTrades[1] Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
if HH > 0 and LL > 0 Then
{
if H > HH Then
{
HH = H;
HL = HH;
}
Else
{
if L < HL Then
HL = L;
}
if L < LL Then
{
LL = L;
LH = LL;
}
Else
{
if H > LH Then
LH = H;
}
if HL < HH-PriceScale*nn Then
Condition1 = true;
if LH > LL+PriceScale*aa Then
Condition2 = true;
if Condition1 == False and HH < LL+PriceScale*mm Then
Sell("s",AtLimit,LL+PriceScale*mm);
if Condition2 == False and LL < HH-PriceScale*bb Then
Buy("b",AtLimit,HH-PriceScale*bb);
}
}
즐거운 하루되세요
> 예스요 님이 쓴 글입니다.
> 제목 : 문의 드립니다.~~~~
> 많은 도움 항상 감사합니다~~~
아래의 수식을 모든 시간에 조건이 맞으면
전부 진입이 되게 하려면 어떻게 바꾸어야 하나요?
여러가지 해보다가 안되어 도움 요청합니다.
input : ntime(100000),nn(10),mm(50),aa(10),bb(50);
var : OO(0),HH(0),LL(0),HL(0),LH(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
Else
{
if HH > 0 and LL > 0 Then
{
if H > HH Then
{
HH = H;
HL = HH;
}
Else
{
if L < HL Then
HL = L;
}
if L < LL Then
{
LL = L;
LH = LL;
}
Else
{
if H > LH Then
LH = H;
}
if HL < HH-PriceScale*nn Then
Condition1 = true;
if LH > LL+PriceScale*aa Then
Condition2 = true;
if Condition1 == False and HH < LL+PriceScale*mm Then
Sell("s",AtLimit,LL+PriceScale*mm);
if Condition2 == False and LL < HH-PriceScale*bb Then
Buy("b",AtLimit,HH-PriceScale*bb);
}
}
진입후 익절 10틱(변수) 손절 10틱(변수) 청산후
청산지점에서 다시 재진입 조건이 충족되면
다시 진입하여 매매가 반복되는 식이었으면 합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의 드립니다.~~~~
> 안녕하세요
예스스탁입니다.
문의하신 내용을 정확히 이해하지 못했습니다.
해당수식의 진입 자체에 시간에 대한 제한은 없습니다.
최고가나 최저가 계산의 기준시간만 10시입니다.
10이후 최고가와 최저가가 일정틱수 반대방향 조정이 없이 상승/하락 하면 진입을 하게 되는 내용입니다.
만약 청산이후에 새로 진입을 또 하고자 하시면
청산후 첫봉에서 각 값을 초기화하고 다시 체크하게 하시면 됩니다.
혹은 의도하시는 다른 초기화시점이 있으시면 자세한 내용을 올려주셔야 수정해 드릴수 있습니다.
input : ntime(100000),nn(10),mm(50),aa(10),bb(50);
var : OO(0),HH(0),LL(0),HL(0),LH(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
Else
{
#거래횟수 증가(청산이 되서서 거래완료)
if TotalTrades > TotalTrades[1] Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
if HH > 0 and LL > 0 Then
{
if H > HH Then
{
HH = H;
HL = HH;
}
Else
{
if L < HL Then
HL = L;
}
if L < LL Then
{
LL = L;
LH = LL;
}
Else
{
if H > LH Then
LH = H;
}
if HL < HH-PriceScale*nn Then
Condition1 = true;
if LH > LL+PriceScale*aa Then
Condition2 = true;
if Condition1 == False and HH < LL+PriceScale*mm Then
Sell("s",AtLimit,LL+PriceScale*mm);
if Condition2 == False and LL < HH-PriceScale*bb Then
Buy("b",AtLimit,HH-PriceScale*bb);
}
}
즐거운 하루되세요
> 예스요 님이 쓴 글입니다.
> 제목 : 문의 드립니다.~~~~
> 많은 도움 항상 감사합니다~~~
아래의 수식을 모든 시간에 조건이 맞으면
전부 진입이 되게 하려면 어떻게 바꾸어야 하나요?
여러가지 해보다가 안되어 도움 요청합니다.
input : ntime(100000),nn(10),mm(50),aa(10),bb(50);
var : OO(0),HH(0),LL(0),HL(0),LH(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
Else
{
if HH > 0 and LL > 0 Then
{
if H > HH Then
{
HH = H;
HL = HH;
}
Else
{
if L < HL Then
HL = L;
}
if L < LL Then
{
LL = L;
LH = LL;
}
Else
{
if H > LH Then
LH = H;
}
if HL < HH-PriceScale*nn Then
Condition1 = true;
if LH > LL+PriceScale*aa Then
Condition2 = true;
if Condition1 == False and HH < LL+PriceScale*mm Then
Sell("s",AtLimit,LL+PriceScale*mm);
if Condition2 == False and LL < HH-PriceScale*bb Then
Buy("b",AtLimit,HH-PriceScale*bb);
}
}
예스스탁
예스스탁 답변
2021-11-25 14:56:50
안녕하세요
예스스탁입니다.
청산이후에 최고가와 최저가를 다시 산정하고 및 각 조건을 초기화해서 다시 체크하게 한다면 1번식을 이용하시면 됩니다.
만약 초기화 없이 매수청산 후 기존조건이 유지되서 최저가+m틱이상이면 다시 매수
매도청산 후 기존조건이 유지되서 최고가-b틱이하이면 다시 매도하길 원하시면
2번식과 같이 익절과 손절 추하하신 후에 각 진입식의
HH < LL+PriceScale*mm
LL < HH-PriceScale*bb
와 같은 조건은 제거해 주시면 됩니다.
해당 조건이 처음으로 해당지점을 넘을때만 신호를 발생하게 하는 내용입니다.
1
input : ntime(100000),nn(10),mm(50),aa(10),bb(50);
input : 익절틱수(10),손절틱수(10);
var : OO(0),HH(0),LL(0),HL(0),LH(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
Else
{
#거래횟수 증가(청산이 되서서 거래완료)
if TotalTrades > TotalTrades[1] Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
if HH > 0 and LL > 0 Then
{
if H > HH Then
{
HH = H;
HL = HH;
}
Else
{
if L < HL Then
HL = L;
}
if L < LL Then
{
LL = L;
LH = LL;
}
Else
{
if H > LH Then
LH = H;
}
if HL < HH-PriceScale*nn Then
Condition1 = true;
if LH > LL+PriceScale*aa Then
Condition2 = true;
if Condition1 == False and HH < LL+PriceScale*mm Then
Sell("s",AtLimit,LL+PriceScale*mm);
if Condition2 == False and LL < HH-PriceScale*bb Then
Buy("b",AtLimit,HH-PriceScale*bb);
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2
input : ntime(100000),nn(10),mm(50),aa(10),bb(50);
input : 익절틱수(10),손절틱수(10);
var : OO(0),HH(0),LL(0),HL(0),LH(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
Else
{
if HH > 0 and LL > 0 Then
{
if H > HH Then
{
HH = H;
HL = HH;
}
Else
{
if L < HL Then
HL = L;
}
if L < LL Then
{
LL = L;
LH = LL;
}
Else
{
if H > LH Then
LH = H;
}
if HL < HH-PriceScale*nn Then
Condition1 = true;
if LH > LL+PriceScale*aa Then
Condition2 = true;
if Condition1 == False Then
Sell("s",AtLimit,LL+PriceScale*mm);
if Condition2 == False Then
Buy("b",AtLimit,HH-PriceScale*bb);
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
즐거운 하루되세요
> 예스요 님이 쓴 글입니다.
> 제목 : Re : Re : 문의 드립니다.~~~~
> 진입후 익절 10틱(변수) 손절 10틱(변수) 청산후
청산지점에서 다시 재진입 조건이 충족되면
다시 진입하여 매매가 반복되는 식이었으면 합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의 드립니다.~~~~
> 안녕하세요
예스스탁입니다.
문의하신 내용을 정확히 이해하지 못했습니다.
해당수식의 진입 자체에 시간에 대한 제한은 없습니다.
최고가나 최저가 계산의 기준시간만 10시입니다.
10이후 최고가와 최저가가 일정틱수 반대방향 조정이 없이 상승/하락 하면 진입을 하게 되는 내용입니다.
만약 청산이후에 새로 진입을 또 하고자 하시면
청산후 첫봉에서 각 값을 초기화하고 다시 체크하게 하시면 됩니다.
혹은 의도하시는 다른 초기화시점이 있으시면 자세한 내용을 올려주셔야 수정해 드릴수 있습니다.
input : ntime(100000),nn(10),mm(50),aa(10),bb(50);
var : OO(0),HH(0),LL(0),HL(0),LH(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
Else
{
#거래횟수 증가(청산이 되서서 거래완료)
if TotalTrades > TotalTrades[1] Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
if HH > 0 and LL > 0 Then
{
if H > HH Then
{
HH = H;
HL = HH;
}
Else
{
if L < HL Then
HL = L;
}
if L < LL Then
{
LL = L;
LH = LL;
}
Else
{
if H > LH Then
LH = H;
}
if HL < HH-PriceScale*nn Then
Condition1 = true;
if LH > LL+PriceScale*aa Then
Condition2 = true;
if Condition1 == False and HH < LL+PriceScale*mm Then
Sell("s",AtLimit,LL+PriceScale*mm);
if Condition2 == False and LL < HH-PriceScale*bb Then
Buy("b",AtLimit,HH-PriceScale*bb);
}
}
즐거운 하루되세요
> 예스요 님이 쓴 글입니다.
> 제목 : 문의 드립니다.~~~~
> 많은 도움 항상 감사합니다~~~
아래의 수식을 모든 시간에 조건이 맞으면
전부 진입이 되게 하려면 어떻게 바꾸어야 하나요?
여러가지 해보다가 안되어 도움 요청합니다.
input : ntime(100000),nn(10),mm(50),aa(10),bb(50);
var : OO(0),HH(0),LL(0),HL(0),LH(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then
{
OO = O;
HH = H;
HL = HH;
LL = L;
LH = LL;
Condition1 = False;
Condition1 = False;
}
Else
{
if HH > 0 and LL > 0 Then
{
if H > HH Then
{
HH = H;
HL = HH;
}
Else
{
if L < HL Then
HL = L;
}
if L < LL Then
{
LL = L;
LH = LL;
}
Else
{
if H > LH Then
LH = H;
}
if HL < HH-PriceScale*nn Then
Condition1 = true;
if LH > LL+PriceScale*aa Then
Condition2 = true;
if Condition1 == False and HH < LL+PriceScale*mm Then
Sell("s",AtLimit,LL+PriceScale*mm);
if Condition2 == False and LL < HH-PriceScale*bb Then
Buy("b",AtLimit,HH-PriceScale*bb);
}
}