예스스탁
예스스탁 답변
2023-05-23 11:20:49
안녕하세요
예스스탁입니다.
BarsSinceEntry는 진입이 되어야 봉수가 리턴됩니다.
첫진입전에는 0이므로 highest(H,0)이 됩니다.
마찬가지로 BarsSinceExit(1)도 첫거래된 이후에만 봉수가 리턴됩니다.
그전에는 0으로 highest(H,0)이 됩니다.
봉수를 지정하는 함수에 봉수가 0이 지정되면 오류가 발생할 수 있습니다.
그러므로 아래와 같이 진입 후, 첫거래후에 값이 계산되게 작성하시면 됩니다.
Input: Bar(8), Gap(0.04);
Var: M1(0),LoX(0),LBX(0),HiX(0),HBX(0),LoN(0),LBN(0),HiN(0),HBN(0);
M1= Ma(C,Bar);
If MarketPosition==0 and TotalTrades < 1 and
NthHighestBar(1,H,117) > NthLowestBar(1,L,117) and
Lowest(L,117) < Highest(H,117)*(1-Gap) and
CrossUp(C,M1) Then Buy("첫매수",OnClose);
If MarketPosition==0 and TotalTrades >= 1 Then
{
LoX= Lowest(L,BarsSinceExit(1));
LBX= NthLowestBar(1,L,BarsSinceExit(1));
HiX= Highest(H,BarsSinceExit(1));
HBX= NthHighestBar(1,H,BarsSinceExit(1));
if HBX>LBX and LoX<HiX*(1-Gap) and CrossUp(C,M1) Then
Buy("매수",OnClose);
}
If MarketPosition==1 Then
{
LoN= Lowest(L,BarsSinceEntry);
LBN= NthLowestBar(1,L,BarsSinceEntry);
HiN= Highest(H,BarsSinceEntry);
HBN= NthHighestBar(1,H,BarsSinceEntry);
if LBN>HBN and HiN>LoN*(1+Gap) and CrossDown(C,M1) Then Exitlong("청산",OnClose);
}
즐거운 하루되세요
> 여의도 님이 쓴 글입니다.
> 제목 : 수식 수정 부탁드립니다
> 다음과 같이 수식을 작성하고 10분봉으로 시뮬레이션하면 작동되지 않습니다. 잘못된 부분을 수정하여 주시면 고맙겠습니다.
Input: Bar(8), Gap(0.04);
Var: M1(0),LoX(0),LBX(0),HiX(0),HBX(0),LoN(0),LBN(0),HiN(0),HBN(0);
M1= Ma(C,Bar);
LoX= Lowest(L,BarsSinceExit(1));
LBX= NthLowestBar(1,L,BarsSinceExit(1));
HiX= Highest(H,BarsSinceExit(1));
HBX= NthHighestBar(1,H,BarsSinceExit(1));
LoN= Lowest(L,BarsSinceEntry);
LBN= NthLowestBar(1,L,BarsSinceEntry);
HiN= Highest(H,BarsSinceEntry);
HBN= NthHighestBar(1,H,BarsSinceEntry);
If MarketPosition==0 and TotalTrades<1 and NthHighestBar(1,H,117)>NthLowestBar(1,L,117) and Lowest(L,117)<Highest(H,117)*(1-Gap) and CrossUp(C,M1) Then Buy("첫매수",OnClose);
If MarketPosition==0 and HBX>LBX and LoX<HiX*(1-Gap) and CrossUp(C,M1) Then Buy("매수",OnClose);
If MarketPosition==1 and LBN>HBN and HiN>LoN*(1+Gap) and CrossDown(C,M1) Then Exitlong("청산",OnClose);
보내주신 수식으로 시뮬레이션하여도 여전히 수식이 작동하지 않습니다. 잘못된 부분을 재검토하여 주시기 바랍니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 수정 부탁드립니다
>
안녕하세요
예스스탁입니다.
BarsSinceEntry는 진입이 되어야 봉수가 리턴됩니다.
첫진입전에는 0이므로 highest(H,0)이 됩니다.
마찬가지로 BarsSinceExit(1)도 첫거래된 이후에만 봉수가 리턴됩니다.
그전에는 0으로 highest(H,0)이 됩니다.
봉수를 지정하는 함수에 봉수가 0이 지정되면 오류가 발생할 수 있습니다.
그러므로 아래와 같이 진입 후, 첫거래후에 값이 계산되게 작성하시면 됩니다.
Input: Bar(8), Gap(0.04);
Var: M1(0),LoX(0),LBX(0),HiX(0),HBX(0),LoN(0),LBN(0),HiN(0),HBN(0);
M1= Ma(C,Bar);
If MarketPosition==0 and TotalTrades < 1 and
NthHighestBar(1,H,117) > NthLowestBar(1,L,117) and
Lowest(L,117) < Highest(H,117)*(1-Gap) and
CrossUp(C,M1) Then Buy("첫매수",OnClose);
If MarketPosition==0 and TotalTrades >= 1 Then
{
LoX= Lowest(L,BarsSinceExit(1));
LBX= NthLowestBar(1,L,BarsSinceExit(1));
HiX= Highest(H,BarsSinceExit(1));
HBX= NthHighestBar(1,H,BarsSinceExit(1));
if HBX>LBX and LoX<HiX*(1-Gap) and CrossUp(C,M1) Then
Buy("매수",OnClose);
}
If MarketPosition==1 Then
{
LoN= Lowest(L,BarsSinceEntry);
LBN= NthLowestBar(1,L,BarsSinceEntry);
HiN= Highest(H,BarsSinceEntry);
HBN= NthHighestBar(1,H,BarsSinceEntry);
if LBN>HBN and HiN>LoN*(1+Gap) and CrossDown(C,M1) Then Exitlong("청산",OnClose);
}
즐거운 하루되세요
> 여의도 님이 쓴 글입니다.
> 제목 : 수식 수정 부탁드립니다
> 다음과 같이 수식을 작성하고 10분봉으로 시뮬레이션하면 작동되지 않습니다. 잘못된 부분을 수정하여 주시면 고맙겠습니다.
Input: Bar(8), Gap(0.04);
Var: M1(0),LoX(0),LBX(0),HiX(0),HBX(0),LoN(0),LBN(0),HiN(0),HBN(0);
M1= Ma(C,Bar);
LoX= Lowest(L,BarsSinceExit(1));
LBX= NthLowestBar(1,L,BarsSinceExit(1));
HiX= Highest(H,BarsSinceExit(1));
HBX= NthHighestBar(1,H,BarsSinceExit(1));
LoN= Lowest(L,BarsSinceEntry);
LBN= NthLowestBar(1,L,BarsSinceEntry);
HiN= Highest(H,BarsSinceEntry);
HBN= NthHighestBar(1,H,BarsSinceEntry);
If MarketPosition==0 and TotalTrades<1 and NthHighestBar(1,H,117)>NthLowestBar(1,L,117) and Lowest(L,117)<Highest(H,117)*(1-Gap) and CrossUp(C,M1) Then Buy("첫매수",OnClose);
If MarketPosition==0 and HBX>LBX and LoX<HiX*(1-Gap) and CrossUp(C,M1) Then Buy("매수",OnClose);
If MarketPosition==1 and LBN>HBN and HiN>LoN*(1+Gap) and CrossDown(C,M1) Then Exitlong("청산",OnClose);
예스스탁
예스스탁 답변
2023-05-24 14:34:40
안녕하세요
예스스탁입니다.
수식이 작동하지 않는 부분이 신호가 발생하지 않는 부분인지
식 적용시 다운되는 부분인지 모르겠습니다.
해당식 적용하면 신호가 나오긴 하지만 종목별로 다르지만
조건내용때문에 굉장히 드물게 신호가 발생하며
또한 청산이후 최저가가 최고가보다 먼저 발생하면
이후 더이상 진입은 발생하지 못하게 되는 내용입니다.
해당 내용은 지정하신 조건내용이므로 저희가 수정해 드릴수 없습니다.
해당식 수식이 신호가 드물게 발생하므로
직전 청산후 경과된 봉이 많을 수록 LoX= Lowest(L,BarsSinceExit(1));
와 같은 내요이 부하가 걸리고 또한 1024개 이상 경과하면 계산을 하지 못합니다.
식만 위와 같은 제약조건을 제외하고 좀더 가볍게 동작하게 수정해 드립니다.
신호 발생과 같은 조건내용은 직접 검토해 보셔야 합니다.
Input: Bar(8), Gap(0.04);
Var: M1(0),LoX(0),LBX(0),HiX(0),HBX(0),LoN(0),LBN(0),HiN(0),HBN(0);
M1= Ma(C,Bar);
If MarketPosition==0 and TotalTrades < 1 and
NthHighestBar(1,H,117) > NthLowestBar(1,L,117) and
Lowest(L,117) < Highest(H,117)*(1-Gap) and
CrossUp(C,M1) Then Buy("첫매수",OnClose);
if TotalTrades > TotalTrades[1] Then
{
LoX = L;
LBX = 0;
HiX = H;
HBX = 0;
}
If MarketPosition==0 and TotalTrades >= 1 Then
{
if L < LoX Then
{
Lox = L;
LBX = 0;
}
Else
LBX = LBX + 1;
if H > HiX Then
{
HiX = H;
HBX = 0;
}
Else
HBX = HBX + 1;
if HBX>LBX and LoX<HiX*(1-Gap) and CrossUp(C,M1) Then
Buy("매수",OnClose);
}
If MarketPosition==1 Then
{
if LoN == 0 or (LoN > 0 and L < LoN) Then
{
LoN = L;
LBN = 0;
}
Else
LBN = LBN+1;
if HiN == 0 or (HiN > 0 and H > HiN) Then
{
HiN = H;
HBN = 0;
}
Else
HBN = HBN+1;
if LBN>HBN and HiN>LoN*(1+Gap) and CrossDown(C,M1) Then Exitlong("청산",OnClose);
}
Else
{
LoN = 0;
LBN = 0;
HiN = 0;
HBN = 0;
}
즐거운 하루되세요
> 여의도 님이 쓴 글입니다.
> 제목 : Re : Re : 수식 수정 재검토 부탁드립니다
> 보내주신 수식으로 시뮬레이션하여도 여전히 수식이 작동하지 않습니다. 잘못된 부분을 재검토하여 주시기 바랍니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 수정 부탁드립니다
>
안녕하세요
예스스탁입니다.
BarsSinceEntry는 진입이 되어야 봉수가 리턴됩니다.
첫진입전에는 0이므로 highest(H,0)이 됩니다.
마찬가지로 BarsSinceExit(1)도 첫거래된 이후에만 봉수가 리턴됩니다.
그전에는 0으로 highest(H,0)이 됩니다.
봉수를 지정하는 함수에 봉수가 0이 지정되면 오류가 발생할 수 있습니다.
그러므로 아래와 같이 진입 후, 첫거래후에 값이 계산되게 작성하시면 됩니다.
Input: Bar(8), Gap(0.04);
Var: M1(0),LoX(0),LBX(0),HiX(0),HBX(0),LoN(0),LBN(0),HiN(0),HBN(0);
M1= Ma(C,Bar);
If MarketPosition==0 and TotalTrades < 1 and
NthHighestBar(1,H,117) > NthLowestBar(1,L,117) and
Lowest(L,117) < Highest(H,117)*(1-Gap) and
CrossUp(C,M1) Then Buy("첫매수",OnClose);
If MarketPosition==0 and TotalTrades >= 1 Then
{
LoX= Lowest(L,BarsSinceExit(1));
LBX= NthLowestBar(1,L,BarsSinceExit(1));
HiX= Highest(H,BarsSinceExit(1));
HBX= NthHighestBar(1,H,BarsSinceExit(1));
if HBX>LBX and LoX<HiX*(1-Gap) and CrossUp(C,M1) Then
Buy("매수",OnClose);
}
If MarketPosition==1 Then
{
LoN= Lowest(L,BarsSinceEntry);
LBN= NthLowestBar(1,L,BarsSinceEntry);
HiN= Highest(H,BarsSinceEntry);
HBN= NthHighestBar(1,H,BarsSinceEntry);
if LBN>HBN and HiN>LoN*(1+Gap) and CrossDown(C,M1) Then Exitlong("청산",OnClose);
}
즐거운 하루되세요
> 여의도 님이 쓴 글입니다.
> 제목 : 수식 수정 부탁드립니다
> 다음과 같이 수식을 작성하고 10분봉으로 시뮬레이션하면 작동되지 않습니다. 잘못된 부분을 수정하여 주시면 고맙겠습니다.
Input: Bar(8), Gap(0.04);
Var: M1(0),LoX(0),LBX(0),HiX(0),HBX(0),LoN(0),LBN(0),HiN(0),HBN(0);
M1= Ma(C,Bar);
LoX= Lowest(L,BarsSinceExit(1));
LBX= NthLowestBar(1,L,BarsSinceExit(1));
HiX= Highest(H,BarsSinceExit(1));
HBX= NthHighestBar(1,H,BarsSinceExit(1));
LoN= Lowest(L,BarsSinceEntry);
LBN= NthLowestBar(1,L,BarsSinceEntry);
HiN= Highest(H,BarsSinceEntry);
HBN= NthHighestBar(1,H,BarsSinceEntry);
If MarketPosition==0 and TotalTrades<1 and NthHighestBar(1,H,117)>NthLowestBar(1,L,117) and Lowest(L,117)<Highest(H,117)*(1-Gap) and CrossUp(C,M1) Then Buy("첫매수",OnClose);
If MarketPosition==0 and HBX>LBX and LoX<HiX*(1-Gap) and CrossUp(C,M1) Then Buy("매수",OnClose);
If MarketPosition==1 and LBN>HBN and HiN>LoN*(1+Gap) and CrossDown(C,M1) Then Exitlong("청산",OnClose);