커뮤니티
안녕하세요.
2008-08-11 08:38:08
849
글번호 16611
Input : Period(14);
var : plus(0), minus(0);
plus = DIPlus(Period);
minus = DIMinus(Period);
# 매수/매도청산
If CrossUP(plus, minus) Then
{
Buy();
}
# 매수청산
If CrossDown(plus, minus) Then
{
Sell();
}
차트는 그대로 두고.... 지표가 갭보정된 시스템을 만들고 싶습니다.
감사합니다 ^^;
답변 1
예스스탁 예스스탁 답변
2008-08-11 10:54:18
안녕하세요
예스스탁입니다.
Inputs: Length(10);
var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0),TH(0),TL(0),TR(0);
Var : Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),DPlus(0);
Var : MinusDM14(0), Dminus(0);
if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉)
gap = Open-Close[1]; // 일간갭
sumGap = sumGap+gap; // 일간갭 누적
}
GO = O - sumGap;// 갭보정 시가
GH = H - sumGap;// 갭보정 고가
GL = L - sumGap;// 갭보정 저가
GC = C - sumGap; // 갭보정 종가
If GC[1] > GH then
TH = GC[1];
else
TH = GH;
If GC[1] < GL then
TL = GC[1];
else
TL = GL;
TR = TH - TL;
If CurrentBar == 1 Then {
MyRange = Length;
DPlus = 0;
PlusDM14 = 0;
MinusDM14 = 0;
TRange = 0;
For Counter = 0 To MyRange - 1 {
If GH[Counter] - GH[Counter+1] < 0 Then
PlusDM = 0;
Else
PlusDM = GH[Counter] - GH[Counter+1];
If GL[Counter+1] - GL[Counter] < 0 Then
MinusDM = 0;
Else
MinusDM = GL[Counter+1] - GL[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 CurrentBar > 1 Then {
If GH[0] - GH[1] < 0 Then
PlusDM = 0;
Else
PlusDM = GH[0] - GH[1];
If GL[1] - GL[0] < 0 Then
MinusDM = 0;
Else
MinusDM = GL[1] - GL[0];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0 ;
If MyRange > 0 Then Begin
TRange = TRange[1] - (TRange[1] / MyRange) + TR;
PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM;
MinusDM14 = MinusDM14[1] - (MinusDM14[1] / MyRange) + MinusDM;
End;
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
}
# 매수/매도청산
If CrossUP(Dplus, Dminus) Then
{
Buy();
}
# 매수청산
If CrossDown(Dplus, Dminus) Then
{
Sell();
}
즐거운 하루되세요
> CJ_coco 님이 쓴 글입니다.
> 제목 : 안녕하세요.
> Input : Period(14);
var : plus(0), minus(0);
plus = DIPlus(Period);
minus = DIMinus(Period);
# 매수/매도청산
If CrossUP(plus, minus) Then
{
Buy();
}
# 매수청산
If CrossDown(plus, minus) Then
{
Sell();
}
차트는 그대로 두고.... 지표가 갭보정된 시스템을 만들고 싶습니다.
감사합니다 ^^;
다음글
이전글