답변완료
진입 손절 청산 시스템 수식 부탁드립니다.
담당자님 안녕하세요! 먼저 감사드립니다.
해외선물 준비하고 있습니다.
볼린저 밴드를 활용한 매수 전략과 청산 전략에 대해 수식 부탁드립니다.
진입 조건 - 포지션이 0이면서, T가 ‘1’이고, 주가가 하단밴드보다 낮을 경우, 주가가 하단 밴드
를 돌파하면 1계약 매수
손절 조건 - T가 ‘-1’이되거나, 100틱이상 하락 시 모두 손절
청산 조건 - 주가가 상단 밴드를 돌파 후 상단 밴드를 하향 돌파 시 모두 청산
감사합니다.
2024-04-08
727
글번호 178396
시스템
답변완료
문법에러가 나는지 고쳐주세요
아래 내용에서 맨 마지막줄의 gg[0]에서 에러가 왜 나는지 모르겠어요ㅜㅜ
그냥 gg[0]만 넣으면 문제가 없는데, gg[0]>gg[1]을 비교했을때 에러가 나고 있습니다.
어떻게 고쳐야 할까요?
aa = Avg(C, 5); //5일선
bb = Avg(C, 20); //20일선
dd = Avg(C, 120); //120일선
ee = Avg(C, 40); //40일선
gg = tema(c,4);
gg=aa>bb And aa>dd And aa>ee And ee[0]>ee[1];
if gg[0]>gg[1] then
2024-04-08
951
글번호 178395
지표
답변완료
재문의 드립니다
아래는 선생님께서 작성해주신 지표인데
필터로 쓰기전에 플롯을 해서 제대로 나오는지 살펴보았는데
전일이나 전전일 adx의 고가 값이 다 100으로 고정되어 있네요
당일꺼는 움직이는거 같은데
당일께 만약 adx가 60을 하이로 찍었으면
내일은 hdax[1]이 60을 나타내야 할텐데요
확인부탁드려요~
Inputs : Period(14);
Var : idx(0),Counter(0), TRange(0), PlusDM14(0),MinusDM14(0);
var : PlusDM(0), MinusDM(0),DMIv(0);
var : DP(0),DM(0),hd(0),ld(0);
var : cnt(0);
Array : Hadx[10](0);
if bdate != Bdate[1] Then
{
idx = 0;
DP = 0;
DM = 0;
}
else
idx = idx+1;
if idx == 0 Then
hd = C-O;
Else
hd = H-H[1];
if idx == 0 Then
ld = C-O;
Else
ld = L-L[1];
If idx >= 0 and idx <= Period+1 Then
{
DP = 0;
DM = 0;
PlusDM14 = 0;
MinusDM14 = 0;
TRange = 0;
For Counter = 0 To idx
{
If hd < 0 Then
PlusDM = 0;
Else
PlusDM = hd;
If ld < 0 Then
MinusDM = 0;
Else
MinusDM = ld;
var1 = PlusDM;
Var2 = MinusDM;
If Var2 >= var1 Then
PlusDM = 0;
If var1 >= Var2 Then
MinusDM = 0;
TRange = TRange + TrueRange[Counter];
PlusDM14 = PlusDM14 + PlusDM;
MinusDM14 = MinusDM14 + MinusDM;
}
If TRange <> 0 Then
{
DP = 100 * PlusDM14 / TRange;
DM = 100 * MinusDM14 / TRange;
}
Else
{
DP = 0;
DM = 0;
}
}
If idx > Period+1 Then
{
If hd < 0 Then
PlusDM = 0;
Else
PlusDM = hd;
If ld < 0 Then
MinusDM = 0;
Else
MinusDM = ld;
var1 = PlusDM;
Var2 = MinusDM;
If Var2 >= var1 Then
PlusDM = 0;
If var1 >= Var2 Then
MinusDM = 0;
If Period > 0 Then Begin
TRange = TRange[1] - (TRange[1] / Period) + TrueRange;
PlusDM14 = PlusDM14[1] - (PlusDM14[1] / Period) + PlusDM;
MinusDM14 = MinusDM14[1] - (MinusDM14[1] / Period) + MinusDM;
End;
If TRange <> 0 Then
{
DP = 100 * PlusDM14 / TRange;
DM = 100 * MinusDM14 / TRange;
}
Else
{
DP = 0;
DM = 0;
}
}
If DP + DM == 0 Then
DMIv = 0;
Else
DMIv = 100 * AbsValue(DP - DM) / (DP + DM);
var : CummDMI(0),ADXV(0);
If idx >= 1 AND Period > 0 Then
{
If idx < Period Then
{
CummDMI = 0;
for Counter = 0 To idx - 1
{
CummDMI = CummDMI + DMIV[Counter];
}
ADXv = CummDMI / idx;
}
Else
ADXv = (ADXv * (Period - 1) + DMIv) / Period;
}
if Bdate != Bdate[1] Then
{
For cnt = 9 DownTo 1
{
Hadx[cnt] = Hadx[cnt-1];
}
Hadx[0] = ADXV;
}
if ADXV > Hadx[0] Then
Hadx[0] = Adxv;
Plot1(hadx[0]);
Plot2(hadx[1]);
2024-04-08
875
글번호 178391
지표
답변완료
왜 에러가 날까요?
아래 내용에서 맨 마지막줄의 gg[0]에서 에러가 왜 나는지 모르겠어요ㅜㅜ
그냥 gg[0]만 넣으면 문제가 없는데, gg[0]>gg[1]을 비교했을때 에러가 나고 있습니다.
어떻게 고쳐야 할까요?
param:
ShortPeriod(5), //단기
LongPeriod(20),
LongTimePeriod(120), //장기
DobluePeriod(40),
LENGTH(4);
Vars: aa(0), bb(0), dd(0), ee(0), ff(0), TEMA(0), gg(False);
aa = Avg(C, ShortPeriod); //5일선
bb = Avg(C, LongPeriod); //20일선
dd = Avg(C, LongTimePeriod); //120일선
ee = Avg(C, DobluePeriod); //40일선
TEMA = (3 * Ema(c,LENGTH)) - (3 * Ema(Ema(c,LENGTH),LENGTH)) + (Ema(Ema(Ema(c,LENGTH),LENGTH),LENGTH));
gg=aa>bb And aa>dd And aa>ee And ee[0]>ee[1];
if gg[0]>gg[1] then
2024-04-08
688
글번호 178390
시스템
답변완료
변환 부탁드립니다.
A=EnvelopeUp(20,6);
B=EnvelopeDown(20,6);
EU=((A+B)/2)+0.5*ATR(5);
ED=((A+B)/2)-0.5*ATR(5);
S1=eavg(EU,5);
S2=eavg(ED,5);
S3=(S1+S2)/2;
SU=if(C>S3,S1,0);
HU=valuewhen(1, SU>SU(1),SU);
1)지표
2)종목검색식
2024-04-08
728
글번호 178384
지표
답변완료
봉점수 합계
3분봉 미니선물에다
답변 수식 1)을 적용해보았습니다.
시작시간을 084500 을 적용하였고
진입조건이 아래와 같다면
084500부터 12봉이 지난 다음에 진입해야 하는데
084800에 진입하는 결과값이 나옵니다.(첨부파일참조)
if AccumN(T,12) > 5 Then
Buy();
if AccumN(T,12) < -5 Then
Sell();
최종 요청내용은 진입시간을 입력하면 그 때부터 봉을 계산한 후 진입하는 수식을 요청드렸던 건입니다.
항상 고맙습니다.
*****************************************************************************
안녕하세요
예스스탁입니다.
1
input:st(100000);
var : uptail(0),body(0),dntail(0),T(0),Tcond(False);
if Bdate != Bdate[1] Then
Tcond = False;
if Tcond == False and sTime >= ST Then
Tcond = true;
if Tcond == true Then
{
uptail = H-max(c,o);
body = abs(C-O);
dntail = min(C,O)-L;
T = 0;
if C > O Then
{
if body > uptail+dntail and body > 0.2 Then
T = 1;
if body < uptail+dntail and uptail+dntail > 0.2 Then
T = 2;
}
Else if C < O Then
{
if body > uptail+dntail and body > 0.2 Then
T = -1;
if body < uptail+dntail and uptail+dntail > 0.2 Then
T = -2;
}
Else
{
if dntail > uptail and dntail > 0.2 Then
T = 3;
if dntail < uptail and uptail > 0.2 Then
T = -3;
}
if AccumN(T,12) > 5 Then
Buy();
if AccumN(T,12) < -5 Then
Sell();
}
2
input:st(100000);
var : uptail(0),body(0),dntail(0),T(0),Tcond(False);
if Bdate != Bdate[1] Then
Tcond = False;
if Tcond == False and sTime >= ST Then
Tcond = true;
if Tcond == true Then
{
uptail = H-max(c,o);
body = abs(C-O);
dntail = min(C,O)-L;
#T = 0;
if C > O Then
{
if body > uptail+dntail and body > 0.2 Then
T = 1;
if body < uptail+dntail and uptail+dntail > 0.2 Then
T = 2;
}
Else if C < O Then
{
if body > uptail+dntail and body > 0.2 Then
T = -1;
if body < uptail+dntail and uptail+dntail > 0.2 Then
T = -2;
}
Else
{
if dntail > uptail and dntail > 0.2 Then
T = 3;
if dntail < uptail and uptail > 0.2 Then
T = -3;
}
if T != T[1] Then
{
var1 = T;
var2 = var1[1];
var3 = Var2[1];
var4 = Var3[1];
value1 = Index;
value2 = value1[1];
value3 = Value2[1];
value4 = Value3[1];
}
if Value4 > 0 and Index <= Value4+12 and var1 == 3 and Var2 == -2 and Var3 == -1 and Var4 == -1 Then
Buy();
if Value4 > 0 and Index <= Value4+12 and var1 == -3 and Var2 == 2 and Var3 == 1 and Var4 == 1 Then
Sell();
}
즐거운 하루되세요
> 목마와숙녀 님이 쓴 글입니다.
> 제목 : 문의
> 아래 답변수식 2개에
입력시간부터 발생한 봉부터 계산하는 조건을 추가하여 주십시요
input:st(100000);
항상 고맙습니다.
****************************************************************************
안녕하세요
예스스탁입니다.
1
var : uptail(0),body(0),dntail(0),T(0);
uptail = H-max(c,o);
body = abs(C-O);
dntail = min(C,O)-L;
T = 0;
if C > O Then
{
if body > uptail+dntail and body > 0.2 Then
T = 1;
if body < uptail+dntail and uptail+dntail > 0.2 Then
T = 2;
}
Else if C < O Then
{
if body > uptail+dntail and body > 0.2 Then
T = -1;
if body < uptail+dntail and uptail+dntail > 0.2 Then
T = -2;
}
Else
{
if dntail > uptail and dntail > 0.2 Then
T = 3;
if dntail < uptail and uptail > 0.2 Then
T = -3;
}
if AccumN(T,12) > 5 Then
Buy();
if AccumN(T,12) < -5 Then
Sell();
2
var : uptail(0),body(0),dntail(0),T(0);
uptail = H-max(c,o);
body = abs(C-O);
dntail = min(C,O)-L;
#T = 0;
if C > O Then
{
if body > uptail+dntail and body > 0.2 Then
T = 1;
if body < uptail+dntail and uptail+dntail > 0.2 Then
T = 2;
}
Else if C < O Then
{
if body > uptail+dntail and body > 0.2 Then
T = -1;
if body < uptail+dntail and uptail+dntail > 0.2 Then
T = -2;
}
Else
{
if dntail > uptail and dntail > 0.2 Then
T = 3;
if dntail < uptail and uptail > 0.2 Then
T = -3;
}
if T != T[1] Then
{
var1 = T;
var2 = var1[1];
var3 = Var2[1];
var4 = Var3[1];
value1 = Index;
value2 = value1[1];
value3 = Value2[1];
value4 = Value3[1];
}
if Value4 > 0 and Index <= Value4+12 and var1 == 3 and Var2 == -2 and Var3 == -1 and Var4 == -1 Then
Buy();
if Value4 > 0 and Index <= Value4+12 and var1 == -3 and Var2 == 2 and Var3 == 1 and Var4 == 1 Then
Sell();
즐거운 하루되세요
2024-08-01
734
글번호 178380
시스템