커뮤니티
수식문의
2018-07-08 21:25:40
161
글번호 120350
안녕하세요
1.
하기 수식에서 몇가지 전략을 추가하고 싶은데,
적용이 되지 않고 있습니다. 검토 부탁드립니다.
input : Period(20),dv(2);
input : ADXP(14);
var : ADXv(0,data1),DP(0,data1),DM(0,data1);
var : BBmd1(0,data1),BBdn1(0,data1),bbup1(0,data1);
var : BandB1(0,data1),HH1(0,data1),LL1(0,data1);
var : BBmd2(0,data2),BBdn2(0,data2),bbup2(0,data2);
var : T(0,data1);
BBmd1 = data1(ma(C,Period));
BBdn1 = data1(BollBandDown(Period,Dv));
BBUp1 = data1(BollBandUp(Period,Dv));
BandB1 = data1(((C-BBDn1)/(BBUp1-BBdn1))*100);
BBmd2 = data2(ma(C,Period));
BBdn2 = data2(BollBandDown(Period,Dv));
BBUp2 = data2(BollBandUp(Period,Dv));
ADXv = data1(ADX(ADXP));
DP = data1(DiPlus(ADXP));
DM = data1(DiMinus(ADXP));
if crossup(BandB1,90) Then
HH1 = BandB1;
if BandB1 > 90 and BandB1 > HH1 Then
HH1 = BandB1;
if CrossDown(BandB1,10) Then
LL1 = BandB1;
if BandB1 < 10 and BandB1 < LL1 Then
LL1 = BandB1;
if CrossDown(BandB1,90) Then
{
T = 0;
if HH1 > 100 Then
T = -1;
if BBup2 < BBup1 then
T = -2;
}
if CrossUp(BandB1,10) Then
{
T = 0;
if HH1 < 0 Then
T = 1;
if BBdn2 > BBdn1 then
T = 2;
}
if T == -1 and BBup2 < BBup1 then
T = -2;
if T == 1 and BBdn2 > BBdn1 then
T = 2;
if T == -2 and T != T[1] and DP < ADXv Then
{
T = 0;
sell("s4");
}
if T == 2 and T != T[1] and DM < ADXv Then
{
T = 0;
buy("b4");
}
if MarketPosition == 1 and CrossDown(C,bbdn1) Then
exitlong();
if MarketPosition == -1 and CrossUp(C,bbup1) Then
ExitShort();
상기 수식에 하기 전략을 추가하고 싶습니다.
var1 = ADX(P);
if H >= BBup and BBup >=L Then
Condition1 = true;
Else
Condition1 = false;
if H >= BBdn and BBdn >=L Then
Condition2 = true;
Else
Condition2 = false;
if (Condition1 == true or Condition1[1] == true) and
abs(C-O) > abs(C[1]-O[1]) and
C < O and C[1] > O[1] Then
sell("s3");
if (Condition2 == true or Condition2[1] == true) and
abs(C-O) > abs(C[1]-O[1]) and
C > O and C[1] < O[1] Then
buy("b3");
var1 = ADX(P);
if var1 >= var1[1]+0.85 and DP > DM and ADXV < 50 and c >= O and H >= BBup and BBup >= L Then
{ buy("b1"); }
if var1 >= var1[1]+0.85 and DP < DM and ADXV < 50 and C <= O and H >= BBdown and BBdown >= L Then
{ sell("s1"); }
value1 = MACD(short, long);
value2 = ema(value1, Period);
# 매수/매도청산
If CrossUP(value1, value2) and C <= bbmd-PriceScale*10 Then
{
buy("b2");
}
# 매도/매수청산
If CrossDown(value1, value2) and C >= bbmd+PriceScale*10 Then
{
sell("s2");
}
감사합니다.
답변 1
예스스탁 예스스탁 답변
2018-07-09 10:12:20
안녕하세요
예스스탁입니다.
input : Period(20),dv(2);
input : ADXP(14);
input : short(12),long(26),sig(9);
var : ADXv(0,data1),DP(0,data1),DM(0,data1);
var : BBmd1(0,data1),BBdn1(0,data1),bbup1(0,data1);
var : BandB1(0,data1),HH1(0,data1),LL1(0,data1);
var : BBmd2(0,data2),BBdn2(0,data2),bbup2(0,data2);
var : T(0,data1),cond1(false,data1),cond2(false,data1);
var : MACDV(0,data1),MACDS(0,data1);
BBmd1 = data1(ma(C,Period));
BBdn1 = data1(BollBandDown(Period,Dv));
BBUp1 = data1(BollBandUp(Period,Dv));
BandB1 = data1(((C-BBDn1)/(BBUp1-BBdn1))*100);
BBmd2 = data2(ma(C,Period));
BBdn2 = data2(BollBandDown(Period,Dv));
BBUp2 = data2(BollBandUp(Period,Dv));
ADXv = data1(ADX(ADXP));
DP = data1(DiPlus(ADXP));
DM = data1(DiMinus(ADXP));
MACDV = data1(MACD(short, long));
MACDS = data1(ema(MACDV, Period));
if crossup(BandB1,90) Then
HH1 = BandB1;
if BandB1 > 90 and BandB1 > HH1 Then
HH1 = BandB1;
if CrossDown(BandB1,10) Then
LL1 = BandB1;
if BandB1 < 10 and BandB1 < LL1 Then
LL1 = BandB1;
if CrossDown(BandB1,90) Then
{
T = 0;
if HH1 > 100 Then
T = -1;
if BBup2 < BBup1 then
T = -2;
}
if CrossUp(BandB1,10) Then
{
T = 0;
if HH1 < 0 Then
T = 1;
if BBdn2 > BBdn1 then
T = 2;
}
if T == -1 and BBup2 < BBup1 then
T = -2;
if T == 1 and BBdn2 > BBdn1 then
T = 2;
if T == -2 and T != T[1] and DP < ADXv Then
{
T = 0;
sell("s4");
}
if T == 2 and T != T[1] and DM < ADXv Then
{
T = 0;
buy("b4");
}
if MarketPosition == 1 and CrossDown(C,bbdn1) Then
exitlong();
if MarketPosition == -1 and CrossUp(C,bbup1) Then
ExitShort();
if H >= BBup1 and BBup1 >=L Then
Cond1 = true;
Else
Cond1 = false;
if H >= BBdn1 and BBdn1 >=L Then
Cond2 = true;
Else
Cond2 = false;
if (Cond1 == true or Cond1[1] == true) and
abs(C-O) > abs(C[1]-O[1]) and
C < O and C[1] > O[1] Then
sell("s3");
if (Cond2 == true or Cond2[1] == true) and
abs(C-O) > abs(C[1]-O[1]) and
C > O and C[1] < O[1] Then
buy("b3");
if adxv >= adxv[1]+0.85 and DP > DM and ADXV < 50 and c >= O and H >= BBup1 and BBup1 >= L Then
{
buy("b1");
}
if adxv >= adxv[1]+0.85 and DP < DM and ADXV < 50 and C <= O and H >= BBdn1 and BBdn1 >= L Then
{
sell("s1");
}
# 매수/매도청산
If CrossUP(MACDV, MACDS) and C <= bbmd1-PriceScale*10 Then
{
buy("b2");
}
# 매도/매수청산
If CrossDown(MACDV, MACDS) and C >= bbmd1+PriceScale*10 Then
{
sell("s2");
}
즐거운 하루되세요
> softtoug 님이 쓴 글입니다.
> 제목 : 수식문의
> 안녕하세요
1.
하기 수식에서 몇가지 전략을 추가하고 싶은데,
적용이 되지 않고 있습니다. 검토 부탁드립니다.
input : Period(20),dv(2);
input : ADXP(14);
var : ADXv(0,data1),DP(0,data1),DM(0,data1);
var : BBmd1(0,data1),BBdn1(0,data1),bbup1(0,data1);
var : BandB1(0,data1),HH1(0,data1),LL1(0,data1);
var : BBmd2(0,data2),BBdn2(0,data2),bbup2(0,data2);
var : T(0,data1);
BBmd1 = data1(ma(C,Period));
BBdn1 = data1(BollBandDown(Period,Dv));
BBUp1 = data1(BollBandUp(Period,Dv));
BandB1 = data1(((C-BBDn1)/(BBUp1-BBdn1))*100);
BBmd2 = data2(ma(C,Period));
BBdn2 = data2(BollBandDown(Period,Dv));
BBUp2 = data2(BollBandUp(Period,Dv));
ADXv = data1(ADX(ADXP));
DP = data1(DiPlus(ADXP));
DM = data1(DiMinus(ADXP));
if crossup(BandB1,90) Then
HH1 = BandB1;
if BandB1 > 90 and BandB1 > HH1 Then
HH1 = BandB1;
if CrossDown(BandB1,10) Then
LL1 = BandB1;
if BandB1 < 10 and BandB1 < LL1 Then
LL1 = BandB1;
if CrossDown(BandB1,90) Then
{
T = 0;
if HH1 > 100 Then
T = -1;
if BBup2 < BBup1 then
T = -2;
}
if CrossUp(BandB1,10) Then
{
T = 0;
if HH1 < 0 Then
T = 1;
if BBdn2 > BBdn1 then
T = 2;
}
if T == -1 and BBup2 < BBup1 then
T = -2;
if T == 1 and BBdn2 > BBdn1 then
T = 2;
if T == -2 and T != T[1] and DP < ADXv Then
{
T = 0;
sell("s4");
}
if T == 2 and T != T[1] and DM < ADXv Then
{
T = 0;
buy("b4");
}
if MarketPosition == 1 and CrossDown(C,bbdn1) Then
exitlong();
if MarketPosition == -1 and CrossUp(C,bbup1) Then
ExitShort();
상기 수식에 하기 전략을 추가하고 싶습니다.
var1 = ADX(P);
if H >= BBup and BBup >=L Then
Condition1 = true;
Else
Condition1 = false;
if H >= BBdn and BBdn >=L Then
Condition2 = true;
Else
Condition2 = false;
if (Condition1 == true or Condition1[1] == true) and
abs(C-O) > abs(C[1]-O[1]) and
C < O and C[1] > O[1] Then
sell("s3");
if (Condition2 == true or Condition2[1] == true) and
abs(C-O) > abs(C[1]-O[1]) and
C > O and C[1] < O[1] Then
buy("b3");
var1 = ADX(P);
if var1 >= var1[1]+0.85 and DP > DM and ADXV < 50 and c >= O and H >= BBup and BBup >= L Then
{ buy("b1"); }
if var1 >= var1[1]+0.85 and DP < DM and ADXV < 50 and C <= O and H >= BBdown and BBdown >= L Then
{ sell("s1"); }
value1 = MACD(short, long);
value2 = ema(value1, Period);
# 매수/매도청산
If CrossUP(value1, value2) and C <= bbmd-PriceScale*10 Then
{
buy("b2");
}
# 매도/매수청산
If CrossDown(value1, value2) and C >= bbmd+PriceScale*10 Then
{
sell("s2");
}
감사합니다.