커뮤니티
문의드립니다
2015-06-24 11:00:04
111
글번호 87594
안녕하세요.
수식을 만들었는데 무엇이 잘못되서 그런지 실행이 되지않읍니다.
보시고 간단하게 줄일것은 줄이고 틀린것은 수정부탁드립니다.
감사합니다.
######################
Input : af(0.01), maxAF(0.1),shortPeriod(12), longPeriod(26),shortPeriod1(24), longPeriod1(52),shortPeriod2(20), longPeriod2(120);
Var : value(0),value1(0),value2(0),value3(0),value4(0),T(0),HH(0),LL(0),ma5(0);
Var : value5(0), value6(0), value7(0), 갭누적(0), 일간갭(0), GC(0),TRIXGap(0),osc(0) ;
value = sar(af,maxAF);
value1 = MACD(shortPeriod, longPeriod);
value2 = MACD(shortPeriod1, longPeriod1);
value3 = ma(c, shortPeriod2);
value4 = ma(c, longPeriod2);
##PAR조건
If crossup(c, value) Then
{
var1 = H;
var2 = L;
var3 = var1[1];
var4 = var2[1];
}
If CrossDown(c, value) Then
{
var1 = H;
var2 = L;
var3 = var1[1];
var4 = var2[1];
}
if H > var1 Then
var1 = H;
if L < var2 Then
var2 = L;
if H > var5 Then
var5 = H;
if L < var6 Then
var6 = L;
if crossUp(C, value) then
var8 = var4;
if CrossDown(C, value) then
var9 = var3;
if crossup(ma(c,5),var9) Then
var10 = var8;
if crossdown(ma(c,5),var8) Then
var10 = var9;
if crossup(ma(c,5),var10) then
var5= h;
if crossdown(ma(c,5),var10) then
var6= l;
if crossup(ma(c,5),var10) then
var7= var6;
if crossdown(ma(c,5),var10) then
var7= var5;
var11 =var6 + (var5-var6)*0.5;
If crossup(c, value) Then
{
var12 = H;
var13 = L;
}
If CrossDown(c, value) Then
{
var14 =h;
var15= l;
}
if var12 > var14 then
var16 = var12;
Else
var16 = var14;
if var13 < var15 then
var17 = var13;
Else
var17 = var15;
##cut loss
if ma(c,5) > var7 Then
var18 = var17;
Else
var18 = var16;
##trix
if index > 0 and date!=date[1] then
{
일간갭 = Open-Close[1]; //일간갭
갭누적 = 갭누적+일간갭; //일간갭 누적
}
GC = C - 갭누적;
value5 = ema(GC, shortPeriod);
value6 = ema(value5, shortPeriod);
value7 = ema(value6, shortPeriod);
TRIXGap = (value7-value7[1])/value7[1]*100;
OSC = trixgap;
##진입식
if T <= 0 and
ma5 > var7 and
value1 > 0 and
value2 > 0 and
value3 > value4 and
C > var11 and
osc > osc[1] And
crossup(c,value) Then{
T = 1;
HH = H;
}
if T >= 0 and
ma5 < var7 and
value1 < 0 and
value2 < 0 and
value3 < value4 and
C < var11 and
osc < osc[1] And
CrossDown(c,value) Then{
T = -1;
LL = L;
}
if T == 1 and crossup(C,HH) Then
buy("매수");
if MarketPosition == 1 and
value1 < 0 and osc < 0 and ma5 < var18 Then
ExitLong("매수청산");
if T == -1 and CrossDown(C,LL) Then
sell("매도");
if MarketPosition == -1 and
value1 > 0 and osc > 0 and ma5 > var18 Then
ExitShort("매도청산");
답변 1
예스스탁 예스스탁 답변
2015-06-24 14:41:49
안녕하세요
예스스탁입니다.
조건문에 ma5가 있는데
수식에 해당 변수에 값을 저장하는 내용이 없습니다.
5이평으로 추가해 드렸습니다.
Input : af(0.01), maxAF(0.1),shortPeriod(12), longPeriod(26),shortPeriod1(24), longPeriod1(52),shortPeriod2(20), longPeriod2(120);
Var : value(0),value1(0),value2(0),value3(0),value4(0),T(0),HH(0),LL(0),ma5(0);
Var : value5(0), value6(0), value7(0), 갭누적(0), 일간갭(0), GC(0),TRIXGap(0),osc(0) ;
value = sar(af,maxAF);
value1 = MACD(shortPeriod, longPeriod);
value2 = MACD(shortPeriod1, longPeriod1);
value3 = ma(c, shortPeriod2);
value4 = ma(c, longPeriod2);
##PAR조건
If crossup(c, value) Then
{
var1 = H;
var2 = L;
var3 = var1[1];
var4 = var2[1];
}
If CrossDown(c, value) Then
{
var1 = H;
var2 = L;
var3 = var1[1];
var4 = var2[1];
}
if H > var1 Then
var1 = H;
if L < var2 Then
var2 = L;
if H > var5 Then
var5 = H;
if L < var6 Then
var6 = L;
if crossUp(C, value) then
var8 = var4;
if CrossDown(C, value) then
var9 = var3;
if crossup(ma(c,5),var9) Then
var10 = var8;
if crossdown(ma(c,5),var8) Then
var10 = var9;
if crossup(ma(c,5),var10) then
var5= h;
if crossdown(ma(c,5),var10) then
var6= l;
if crossup(ma(c,5),var10) then
var7= var6;
if crossdown(ma(c,5),var10) then
var7= var5;
var11 =var6 + (var5-var6)*0.5;
If crossup(c, value) Then
{
var12 = H;
var13 = L;
}
If CrossDown(c, value) Then
{
var14 =h;
var15= l;
}
if var12 > var14 then
var16 = var12;
Else
var16 = var14;
if var13 < var15 then
var17 = var13;
Else
var17 = var15;
##cut loss
if ma(c,5) > var7 Then
var18 = var17;
Else
var18 = var16;
##trix
if index > 0 and date!=date[1] then
{
일간갭 = Open-Close[1]; //일간갭
갭누적 = 갭누적+일간갭; //일간갭 누적
}
GC = C - 갭누적;
value5 = ema(GC, shortPeriod);
value6 = ema(value5, shortPeriod);
value7 = ema(value6, shortPeriod);
TRIXGap = (value7-value7[1])/value7[1]*100;
OSC = trixgap;
ma5 = ma(c,5);
##진입식
if T <= 0 and
ma5 > var7 and
value1 > 0 and
value2 > 0 and
value3 > value4 and
C > var11 and
osc > osc[1] And
crossup(c,value) Then{
T = 1;
HH = H;
}
if T >= 0 and
ma5 < var7 and
value1 < 0 and
value2 < 0 and
value3 < value4 and
C < var11 and
osc < osc[1] And
CrossDown(c,value) Then{
T = -1;
LL = L;
}
if T == 1 and crossup(C,HH) Then
buy("매수");
if MarketPosition == 1 and
value1 < 0 and osc < 0 and ma5 < var18 Then
ExitLong("매수청산");
if T == -1 and CrossDown(C,LL) Then
sell("매도");
if MarketPosition == -1 and
value1 > 0 and osc > 0 and ma5 > var18 Then
ExitShort("매도청산");
즐거운 하루되세요
> 베드로 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 안녕하세요.
수식을 만들었는데 무엇이 잘못되서 그런지 실행이 되지않읍니다.
보시고 간단하게 줄일것은 줄이고 틀린것은 수정부탁드립니다.
감사합니다.
######################
Input : af(0.01), maxAF(0.1),shortPeriod(12), longPeriod(26),shortPeriod1(24), longPeriod1(52),shortPeriod2(20), longPeriod2(120);
Var : value(0),value1(0),value2(0),value3(0),value4(0),T(0),HH(0),LL(0),ma5(0);
Var : value5(0), value6(0), value7(0), 갭누적(0), 일간갭(0), GC(0),TRIXGap(0),osc(0) ;
value = sar(af,maxAF);
value1 = MACD(shortPeriod, longPeriod);
value2 = MACD(shortPeriod1, longPeriod1);
value3 = ma(c, shortPeriod2);
value4 = ma(c, longPeriod2);
##PAR조건
If crossup(c, value) Then
{
var1 = H;
var2 = L;
var3 = var1[1];
var4 = var2[1];
}
If CrossDown(c, value) Then
{
var1 = H;
var2 = L;
var3 = var1[1];
var4 = var2[1];
}
if H > var1 Then
var1 = H;
if L < var2 Then
var2 = L;
if H > var5 Then
var5 = H;
if L < var6 Then
var6 = L;
if crossUp(C, value) then
var8 = var4;
if CrossDown(C, value) then
var9 = var3;
if crossup(ma(c,5),var9) Then
var10 = var8;
if crossdown(ma(c,5),var8) Then
var10 = var9;
if crossup(ma(c,5),var10) then
var5= h;
if crossdown(ma(c,5),var10) then
var6= l;
if crossup(ma(c,5),var10) then
var7= var6;
if crossdown(ma(c,5),var10) then
var7= var5;
var11 =var6 + (var5-var6)*0.5;
If crossup(c, value) Then
{
var12 = H;
var13 = L;
}
If CrossDown(c, value) Then
{
var14 =h;
var15= l;
}
if var12 > var14 then
var16 = var12;
Else
var16 = var14;
if var13 < var15 then
var17 = var13;
Else
var17 = var15;
##cut loss
if ma(c,5) > var7 Then
var18 = var17;
Else
var18 = var16;
##trix
if index > 0 and date!=date[1] then
{
일간갭 = Open-Close[1]; //일간갭
갭누적 = 갭누적+일간갭; //일간갭 누적
}
GC = C - 갭누적;
value5 = ema(GC, shortPeriod);
value6 = ema(value5, shortPeriod);
value7 = ema(value6, shortPeriod);
TRIXGap = (value7-value7[1])/value7[1]*100;
OSC = trixgap;
##진입식
if T <= 0 and
ma5 > var7 and
value1 > 0 and
value2 > 0 and
value3 > value4 and
C > var11 and
osc > osc[1] And
crossup(c,value) Then{
T = 1;
HH = H;
}
if T >= 0 and
ma5 < var7 and
value1 < 0 and
value2 < 0 and
value3 < value4 and
C < var11 and
osc < osc[1] And
CrossDown(c,value) Then{
T = -1;
LL = L;
}
if T == 1 and crossup(C,HH) Then
buy("매수");
if MarketPosition == 1 and
value1 < 0 and osc < 0 and ma5 < var18 Then
ExitLong("매수청산");
if T == -1 and CrossDown(C,LL) Then
sell("매도");
if MarketPosition == -1 and
value1 > 0 and osc > 0 and ma5 > var18 Then
ExitShort("매도청산");