커뮤니티
타주기 적용 시스템변경
2016-05-10 11:27:15
116
글번호 97883
항상 감사드립니다
아래시스템식을 data1,data2로 나누어 타주기챠트에 적용할수 잇도록 수정해주시기 바랍니다.
진입 : 주챠트신호(1분봉) and 타주기 챠트(20틱)
청산 : 타주기챠트
####################
###신거래선 기준 ###
####################
if V == highest(V,240) Then
var60 = (C+H+L)/3; #240거래선#
######################
### 거래선_60 ########
######################
var : upv1(0),upv2(0),upv3(0);
var : dnv1(0),dnv2(0),dnv3(0);
var : upv11(0),upv12(0),upv13(0);
var : dnv11(0),dnv12(0),dnv13(0);
var : upv21(0),upv22(0),upv23(0);
var : dnv21(0),dnv22(0),dnv23(0);
If V== highest(V,60) then{
Var71 = (C+H+L)/3;
var72 = var71[1];
if var71 > var72 Then{
upv1 = var71;
upv2 = upv1[1];
upv3 = upv2[1];
if upv1 > upv2 and upv2 > upv3 Then
var70 = 1;
}
if var71 < var72 Then{
dnv1 = var71;
dnv2 = dnv1[1];
dnv3 = dnv2[1];
if dnv1 < dnv2 and dnv2 < dnv3 Then
var70 = -1;
}
}
###################
###### aroon ######
###################
input : Period10(20);
var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ;
Lowval= Lowest(Low, Period10+1);
Highval = Highest(High, Period10+1);
For counter= 0 To Period10 {
If Low[counter] == Lowval Then
DownVel = counter;
If High[counter] == highval Then
UpVel = counter;
}
DnAroon = 100*(Period10-DownVel)/Period10;
UpAroon = 100*(Period10-UpVel)/Period10;
#####################################
##### 션샤인 보조_2호(macd_sar) #####
#####################################
input : short1(12),long1(26),signal1(9),af(0.02),maxaf(0.2);
var : XX(0),YY(0);
var7 = MACD(short1,long1);#MACD
var8 = ema(var7,Signal1);#MACD sig
var9 = sar(af,maxaf); #파라볼릭
if var7 > var8 Then{
if C > var9 Then
XX = 6;
Else
XX = 2;
}
Else{
if var9 > C Then
XX = -6;
Else
XX = -2;
}
if var7 > 0 Then
YY = 10;
Else
YY = -10;
if (XX+YY)>0 Then
var12 = 1; # buy();
if (XX+YY)<0 Then
var12 = -1; # sell();
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
var : entrycnt(0);
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then # 현지시간_뉴욕 17:00 장시작 #
Entrycnt = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
Entrycnt = Entrycnt+1;
if (stime >= 170000 or stime < 143000) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 #
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and #동일방향 재진입금지#
매수조건 Then
buy("B_30");
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and #동일방향 재진입금지#
매도조건 Then
sell("S_30");
}
###############################
##### 청산 시스템 #####
###############################
if MarketPosition == 1 and 타주기매도조건 then
exitlong("eB_타주기");
if MarketPosition == -1 and 타주기매수조건 Then
ExitShort("eS_타주기");
답변 1
예스스탁 예스스탁 답변
2016-05-10 18:34:57
안녕하세요
예스스탁입니다.
진입청산의 전략내용을 모르므로
수식의 각 지표를 data1과 data2계산값 2개로 추가해서 식 올려드립니다.
각 변수 조합하여 진입청산식 완성하시기 바랍니다.
####################
###신거래선 기준 ###
####################
var : V60(0,data1),D2V60(0,data2);
#data1
if V == highest(V,240) Then
v60 = (C+H+L)/3; #240거래선#
#data2
if data2(V == highest(V,240)) Then
d2v60 = (C+H+L)/3; #240거래선#
######################
### 거래선_60 ########
######################
var : V71(0,data1),V72(0,data1),V70(0,data1);
var : upv1(0,data1),upv2(0,data1),upv3(0);
var : dnv1(0,data1),dnv2(0,data1),dnv3(0,data1);
var : d2V71(0,data1),d2V72(0,data1),d2V70(0,data1);
var : d2upv1(0,data1),d2upv2(0,data1),d2upv3(0);
var : d2dnv1(0,data1),d2dnv2(0,data1),d2dnv3(0,data1);
/*var : upv11(0),upv12(0),upv13(0);
var : dnv11(0),dnv12(0),dnv13(0);
var : upv21(0),upv22(0),upv23(0);
var : dnv21(0),dnv22(0),dnv23(0);
*/
#data1
If data1(V== highest(V,60)) then{
v71 = data1((C+H+L)/3);
v72 = v71[1];
if v71 > v72 Then{
upv1 = v71;
upv2 = upv1[1];
upv3 = upv2[1];
if upv1 > upv2 and upv2 > upv3 Then
v70 = 1;
}
if v71 < v72 Then{
dnv1 = v71;
dnv2 = dnv1[1];
dnv3 = dnv2[1];
if dnv1 < dnv2 and dnv2 < dnv3 Then
v70 = -1;
}
}
#data2
If data2(V== highest(V,60)) then{
d2v71 = data2((C+H+L)/3);
d2v72 = d2v71[1];
if d2v71 > d2v72 Then{
d2upv1 = d2v71;
d2upv2 = d2upv1[1];
d2upv3 = d2upv2[1];
if d2upv1 > d2upv2 and d2upv2 > d2upv3 Then
d2v70 = 1;
}
if d2v71 < d2v72 Then{
d2dnv1 = d2v71;
d2dnv2 = d2dnv1[1];
d2dnv3 = d2dnv2[1];
if d2dnv1 < d2dnv2 and d2dnv2 < d2dnv3 Then
d2v70 = -1;
}
}
###################
###### aroon ######
###################
input : Period10(20);
var : Counter(0,data1), Lowval(0,data1), Highval(0,data1), DownVel(0,data1),UpVel(0,data1), DnAroon(0,data1),UpAroon(0,data1) ;
var : d2Counter(0,data2), d2Lowval(0,data2), d2Highval(0,data2), d2DownVel(0,data2),d2UpVel(0,data2), d2DnAroon(0,data2),d2UpAroon(0,data2);
var : L2(0,data2),H2(0,data2);
#data1
Lowval= data1(Lowest(Low, Period10+1));
Highval = data1(Highest(High, Period10+1));
For counter= 0 To Period10 {
If Low[counter] == Lowval Then
DownVel = counter;
If High[counter] == highval Then
UpVel = counter;
}
DnAroon = 100*(Period10-DownVel)/Period10;
UpAroon = 100*(Period10-UpVel)/Period10;
#data2
L2 = data2(L);
H2 = data2(H);
d2Lowval= data2(Lowest(Low, Period10+1));
d2Highval = data2(Highest(High, Period10+1));
For d2counter= 0 To Period10 {
If L2[counter] == d2Lowval Then
d2DownVel = d2counter;
If H2[counter] == d2highval Then
d2UpVel = d2counter;
}
d2DnAroon = 100*(Period10-d2DownVel)/Period10;
d2UpAroon = 100*(Period10-d2UpVel)/Period10;
#####################################
##### 션샤인 보조_2호(macd_sar) #####
#####################################
input : short1(12),long1(26),signal1(9),af(0.02),maxaf(0.2);
var : XX(0,data1),YY(0,data1),V7(0,data1),V8(0,data1),V9(0,data1),V12(0,data1);
var : d2XX(0,data2),d2YY(0,data2),d2V7(0,data2),d2V8(0,data2),d2V9(0,data2),d2V12(0,data2);
#data1
v7 = data1(MACD(short1,long1));#MACD
v8 = data1(ema(v7,Signal1));#MACD sig
v9 = data1(sar(af,maxaf)); #파라볼릭
if v7 > v8 Then{
if data1(C) > v9 Then
XX = 6;
Else
XX = 2;
}
Else{
if v9 > data1(C) Then
XX = -6;
Else
XX = -2;
}
if v7 > 0 Then
YY = 10;
Else
YY = -10;
if (XX+YY)>0 Then
v12 = 1; # buy();
if (XX+YY)<0 Then
v12 = -1; # sell();
#data2
d2v7 = data2(MACD(short1,long1));#MACD
d2v8 = data2(ema(v7,Signal1));#MACD sig
d2v9 = data2(sar(af,maxaf)); #파라볼릭
if d2v7 > d2v8 Then{
if data2(C) > d2v9 Then
d2XX = 6;
Else
d2XX = 2;
}
Else{
if d2v9 > data2(C) Then
d2XX = -6;
Else
d2XX = -2;
}
if d2v7 > 0 Then
d2YY = 10;
Else
d2YY = -10;
if (d2XX+d2YY)>0 Then
d2v12 = 1; # buy();
if (d2XX+d2YY)<0 Then
d2v12 = -1; # sell();
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
var : entrycnt(0);
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then # 현지시간_뉴욕 17:00 장시작 #
Entrycnt = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
Entrycnt = Entrycnt+1;
if (stime >= 170000 or stime < 143000) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 #
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and #동일방향 재진입금지#
매수조건 Then
buy("B_30");
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and #동일방향 재진입금지#
매도조건 Then
sell("S_30");
}
###############################
##### 청산 시스템 #####
###############################
if MarketPosition == 1 and 타주기매도조건 then
exitlong("eB_타주기");
if MarketPosition == -1 and 타주기매수조건 Then
ExitShort("eS_타주기");
즐거운 하루되세요
> 조민철 님이 쓴 글입니다.
> 제목 : 타주기 적용 시스템변경
> 항상 감사드립니다
아래시스템식을 data1,data2로 나누어 타주기챠트에 적용할수 잇도록 수정해주시기 바랍니다.
진입 : 주챠트신호(1분봉) and 타주기 챠트(20틱)
청산 : 타주기챠트
####################
###신거래선 기준 ###
####################
if V == highest(V,240) Then
var60 = (C+H+L)/3; #240거래선#
######################
### 거래선_60 ########
######################
var : upv1(0),upv2(0),upv3(0);
var : dnv1(0),dnv2(0),dnv3(0);
var : upv11(0),upv12(0),upv13(0);
var : dnv11(0),dnv12(0),dnv13(0);
var : upv21(0),upv22(0),upv23(0);
var : dnv21(0),dnv22(0),dnv23(0);
If V== highest(V,60) then{
Var71 = (C+H+L)/3;
var72 = var71[1];
if var71 > var72 Then{
upv1 = var71;
upv2 = upv1[1];
upv3 = upv2[1];
if upv1 > upv2 and upv2 > upv3 Then
var70 = 1;
}
if var71 < var72 Then{
dnv1 = var71;
dnv2 = dnv1[1];
dnv3 = dnv2[1];
if dnv1 < dnv2 and dnv2 < dnv3 Then
var70 = -1;
}
}
###################
###### aroon ######
###################
input : Period10(20);
var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ;
Lowval= Lowest(Low, Period10+1);
Highval = Highest(High, Period10+1);
For counter= 0 To Period10 {
If Low[counter] == Lowval Then
DownVel = counter;
If High[counter] == highval Then
UpVel = counter;
}
DnAroon = 100*(Period10-DownVel)/Period10;
UpAroon = 100*(Period10-UpVel)/Period10;
#####################################
##### 션샤인 보조_2호(macd_sar) #####
#####################################
input : short1(12),long1(26),signal1(9),af(0.02),maxaf(0.2);
var : XX(0),YY(0);
var7 = MACD(short1,long1);#MACD
var8 = ema(var7,Signal1);#MACD sig
var9 = sar(af,maxaf); #파라볼릭
if var7 > var8 Then{
if C > var9 Then
XX = 6;
Else
XX = 2;
}
Else{
if var9 > C Then
XX = -6;
Else
XX = -2;
}
if var7 > 0 Then
YY = 10;
Else
YY = -10;
if (XX+YY)>0 Then
var12 = 1; # buy();
if (XX+YY)<0 Then
var12 = -1; # sell();
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
var : entrycnt(0);
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then # 현지시간_뉴욕 17:00 장시작 #
Entrycnt = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
Entrycnt = Entrycnt+1;
if (stime >= 170000 or stime < 143000) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 #
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and #동일방향 재진입금지#
매수조건 Then
buy("B_30");
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and #동일방향 재진입금지#
매도조건 Then
sell("S_30");
}
###############################
##### 청산 시스템 #####
###############################
if MarketPosition == 1 and 타주기매도조건 then
exitlong("eB_타주기");
if MarketPosition == -1 and 타주기매수조건 Then
ExitShort("eS_타주기");
다음글
이전글