커뮤니티
부탁드리겠습니다.
2012-06-08 14:48:40
291
글번호 51808
해당 식을 1분봉에서 5분봉 데이터로 참조하고 싶습니다.
아래는 5분봉식이며, data2 사용없이 1분봉에서 사용할 수 있게 부탁드리겠습니다.
var1 = DIPLUS(14);
var2 = DIMINUS(14);
var3 = ADX(14);
var4 = ema(C,9);
var5 = ema(C,26);
if var1 > var2
and var1 > var1[1]
and var2 < var2[1]
and var3 > var3[1]
and var3 > 20
and crossup(var4, var5) then
Buy();
답변 1
예스스탁 예스스탁 답변
2012-06-08 15:10:46
안녕하세요
예스스탁입니다.
input : TT(5),Length(14),Period1(9),Period2(26);
var : TL(0),TH(0),cnt(0),Dcnt(0),preTRange(0),prePlusDM14(0),DMinus(0),MinusDM14(0),TRange1(0),preMinusDM14(0);
Var : Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),Dplus(0),preADX(0),ADXv(0);
Var : Ep2(0), JISU2(0), PreJISU2(0),Ep1(0),JISU1(0), DINDEX1(0), PreJISU1(0),Predminus(0),Predplus(0);
Array : HH[61](0),LL[61](0),CC[61](0),TR[61](0),DMIv[61](0);
value1 = TimeToMinutes(stime)%TT;
if dayindex == 0 or (value1 < value1[1] and stime > stime[1]) Then{
Dcnt = Dcnt+1;
HH[0] = H;
LL[0] = L;
CC[0] = C;
preTRange = TRange[1];
prePlusDM14 = PlusDM14[1];
preMinusDM14 = MinusDM14[1];
preADX = ADXv[1];
for cnt = 1 to 60{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TR[cnt] = TR[cnt-1][1];
DMIv[cnt] = DMIv[cnt-1][1];
}
Predminus = Dminus[1];
Predplus = Dplus[1];
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if CC[1] > 0 Then{
If CC[1] > HH[0] then
TH = CC[1];
else
TH = HH[0];
If CC[1] < LL[0] then
TL = CC[1];
else
TL = LL[0];
TR[0] = TH-TL;
}
If Dcnt == Length+1 Then {
MyRange = Length;
DPlus = 0;
PlusDM14 = 0;
TRange = 0;
DMinus = 0;
MinusDM14 = 0;
TRange1 = 0;
For Counter = 0 To MyRange - 1 {
If HH[Counter] - HH[Counter+1] < 0 Then
PlusDM = 0 ;
Else
PlusDM = HH[Counter] - HH[Counter+1];
If LL[Counter+1] - LL[Counter] < 0 Then
MinusDM = 0;
Else
MinusDM = LL[Counter+1] - LL[Counter];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0;
TRange = TRange + TR[Counter];
PlusDM14 = PlusDM14 + PlusDM;
MinusDM14 = MinusDM14 + MinusDM;
}
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
}
Else If Dcnt > Length+1 Then {
If HH[0] - HH[1] < 0 Then
PlusDM = 0;
Else
PlusDM = HH[0] - HH[1];
If LL[1] - LL[0] < 0 Then
MinusDM = 0;
Else
MinusDM = LL[1] - LL[0];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0 ;
If MyRange > 0 Then {
TRange = preTRange - (preTRange / MyRange) + TR[0];
PlusDM14 = prePlusDM14 - (prePlusDM14 / MyRange) + PlusDM;
MinusDM14 = preMinusDM14 - (preMinusDM14 / MyRange) + MinusDM;
}
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
}
If DPlus + DMinus == 0 Then
DMIv[0] = 0;
Else
DMIv[0] = 100 * Abs(DPlus - DMinus) / (DPlus + DMinus);
Variables: CummDMI(0), Return(0);
Return = 0;
If dcnt >= Length AND Length > 0 Then Begin
If CurrentBar < Length+1 Then begin
CummDMI = 0;
for Counter = 0 To CurrentBar - 1 Begin
CummDMI = CummDMI + DMIV[Counter];
End;
Return = CummDMI / CurrentBar;
End
Else
Return = (preADX[1] * (Length - 1) + DMIv[0]) / Length;
End;
ADXv = Return;
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
if dayindex() == 0 or value1 <= value1[1] Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
}
if DINDEX1 <= 1 then {
JISU1 = C;
JISU2 = C;
}
else{
JISU1 = C * EP1 + PreJISU1 * (1-EP1);
JISU2 = C * EP2 + PreJISU2 * (1-EP2);
}
if DPlus > Dminus
and DPlus > preDPlus
and Dminus < preDminus
and ADXv > preADX
and ADXv > 20
and crossup(JISU1, JISU2) then
Buy();
즐거운 하루되세요
> 엠제이 님이 쓴 글입니다.
> 제목 : 부탁드리겠습니다.
> 해당 식을 1분봉에서 5분봉 데이터로 참조하고 싶습니다.
아래는 5분봉식이며, data2 사용없이 1분봉에서 사용할 수 있게 부탁드리겠습니다.
var1 = DIPLUS(14);
var2 = DIMINUS(14);
var3 = ADX(14);
var4 = ema(C,9);
var5 = ema(C,26);
if var1 > var2
and var1 > var1[1]
and var2 < var2[1]
and var3 > var3[1]
and var3 > 20
and crossup(var4, var5) then
Buy();
다음글