커뮤니티
합성시스템 요청드립니다.
2015-05-28 16:56:59
146
글번호 86502
메뉴의 '시스템합성관리자'가 아닌 함수를 통해서
시스템A와 시스템B를 다음의 청산 조건을 추가하여
하나의 시스템으로 만들고 싶습니다.
- 청산조건(시스템A와 시스템B에 모두 적용) : 손절매 : 0.5%
목표수익 : 1%
최소가격변화 : 0.5%, 10봉이내
-시스템A :
var : entry(0),NP(0),NP1(0),NP2(0);
NP = NetProfit;
if bdate != bdate[1] Then{
entry = 0;
NP1 = NP[1];
NP2 = NP1[1];
Condition1 = true;
if NP1 > NP2 Then
Condition1 = false;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
var : ho(0),OL(0),HL(0);
var : maho(0),maOL(0),maHL(0);
var : cnt(0),sumho(0),sumOL(0),sumHL(0);
var : EntryCnt(0);
ho = Dayhigh-Dayopen;
OL = DayOpen-DayLow;
HL = DayHigh-DayLow;
sumho = 0;
sumOL = 0;
sumHL = 0;
for cnt = 1 to 10{
sumho = sumho + (dayhigh(cnt)-dayopen(cnt));
sumOL = sumOL + (DayOpen(cnt)-DayLow(cnt));
sumHL = sumHL + (DayHigh(cnt)-DayLow(cnt));
}
maho = sumho/10;
maOL = sumOL/10;
maHL = sumHL/10;
var1 = dayopen(0)+maho;
var2 = DayOpen(0)-maOL;
var3 = DayOpen(0)+maHL;
var4 = DayOpen(0)-maHL;
var5 = NthMaxList(1,var1,var2,var3,var4);
var6 = NthMaxList(2,var1,var2,var3,var4);
var9 = NthMaxList(3,var1,var2,var3,var4);
var10 = NthMaxList(4,var1,var2,var3,var4);
var7 = (var5+var10)/3;
var8 = (var6+var9)/3;
if MarketPosition == 0 and entry == 0 and Condition1 == true Then{
if var7 > var8 Then
sell("s1",AtStop,var7);
if var7 < var8 Then
sell("s2",Atlimit,Var8);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,var9);
ExitShort("sl1",AtStop,var6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,var9);
ExitShort("sl2",AtStop,var6);
}
-시스템B :
var : TF(0);
var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0);
var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0);
Array : HH[50](0),LL[50](0),CC[50](0);
mav1 = ma(c,5);
mav2 = ma(C,20);
TF = TimeToMinutes(stime)%30;
if Bdate != Bdate[1] Then{
Etime = true;
if stime >= 090000 Then
Xtime = 050000;
Else
Xtime = 060000;
}
if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if HH[25+2] > 0 Then{
HV = HH[0];
LV = LL[0];
HV1 = HH[1];
LV1 = LL[1];
HV2 = HH[2];
LV2 = LL[2];
for cnt = 0 to 25{
if HH[cnt] > HV Then
HV = HH[cnt];
if LL[cnt] < LV Then
LV = LL[cnt];
if HH[cnt+1] > HV Then
HV = HH[cnt+1];
if LL[cnt+1] < LV Then
LV = LL[cnt+1];
if HH[cnt+2] > HV Then
HV = HH[cnt+2];
if LL[cnt+2] < LV Then
LV = LL[cnt+2];
}
var1 = (HV+LV)/3;
var2 = (HV1+LV1)/3;
var3 = (HV2+LV2)/3;
if Etime == true then{
if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then
buy("b",AtMarket);
if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then
ExitLong("bx",AtMarket);
}
}
if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{
Etime = false;
ExitLong();
}
답변 1
예스스탁 예스스탁 답변
2015-05-29 10:53:11
안녕하세요
예스스탁입니다.
var : entry(0),NP(0),NP1(0),NP2(0);
var : ho(0),OL(0),HL(0);
var : maho(0),maOL(0),maHL(0);
var : cnt(0),sumho(0),sumOL(0),sumHL(0);
var : EntryCnt(0),cond1(false);
var : V1(0),V2(0),V3(0),V4(0),V5(0),V6(0),V7(0),V8(0),V9(0),V10(0);
NP = NetProfit;
if bdate != bdate[1] Then{
entry = 0;
NP1 = NP[1];
NP2 = NP1[1];
Cond1 = true;
if NP1 > NP2 Then
cond1 = false;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
ho = Dayhigh-Dayopen;
OL = DayOpen-DayLow;
HL = DayHigh-DayLow;
sumho = 0;
sumOL = 0;
sumHL = 0;
for cnt = 1 to 10{
sumho = sumho + (dayhigh(cnt)-dayopen(cnt));
sumOL = sumOL + (DayOpen(cnt)-DayLow(cnt));
sumHL = sumHL + (DayHigh(cnt)-DayLow(cnt));
}
maho = sumho/10;
maOL = sumOL/10;
maHL = sumHL/10;
V1 = dayopen(0)+maho;
V2 = DayOpen(0)-maOL;
V3 = DayOpen(0)+maHL;
V4 = DayOpen(0)-maHL;
V5 = NthMaxList(1,V1,V2,V3,V4);
V6 = NthMaxList(2,V1,V2,V3,V4);
V9 = NthMaxList(3,V1,V2,V3,V4);
V10 = NthMaxList(4,V1,V2,V3,V4);
V7 = (V5+V10)/3;
V8 = (V6+V9)/3;
if MarketPosition == 0 and entry == 0 and cond1 == true Then{
if V7 > V8 Then
sell("s1",AtStop,V7);
if V7 < V8 Then
sell("s2",Atlimit,V8);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,V9);
ExitShort("sl1",AtStop,V6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,V9);
ExitShort("sl2",AtStop,V6);
}
var : TF(0);
var : Xtime(0), Etime(false),mav1(0),mav2(0);
var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0);
Array : HH[50](0),LL[50](0),CC[50](0);
mav1 = ma(c,5);
mav2 = ma(C,20);
TF = TimeToMinutes(stime)%30;
if Bdate != Bdate[1] Then{
Etime = true;
if stime >= 090000 Then
Xtime = 050000;
Else
Xtime = 060000;
}
if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if HH[25+2] > 0 Then{
HV = HH[0];
LV = LL[0];
HV1 = HH[1];
LV1 = LL[1];
HV2 = HH[2];
LV2 = LL[2];
for cnt = 0 to 25{
if HH[cnt] > HV Then
HV = HH[cnt];
if LL[cnt] < LV Then
LV = LL[cnt];
if HH[cnt+1] > HV Then
HV = HH[cnt+1];
if LL[cnt+1] < LV Then
LV = LL[cnt+1];
if HH[cnt+2] > HV Then
HV = HH[cnt+2];
if LL[cnt+2] < LV Then
LV = LL[cnt+2];
}
var1 = (HV+LV)/3;
var2 = (HV1+LV1)/3;
var3 = (HV2+LV2)/3;
if Etime == true then{
if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then
buy("b",AtMarket);
if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then
ExitLong("bx",AtMarket);
}
}
if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{
Etime = false;
ExitLong();
}
SetStopLoss(0.5,PercentStop);
SetStopProfittarget(1,PercentStop);
SetStopInactivity(0.5,10,PercentStop);
즐거운 하루되세요
> 통큰베팅 님이 쓴 글입니다.
> 제목 : 합성시스템 요청드립니다.
> 메뉴의 '시스템합성관리자'가 아닌 함수를 통해서
시스템A와 시스템B를 다음의 청산 조건을 추가하여
하나의 시스템으로 만들고 싶습니다.
- 청산조건(시스템A와 시스템B에 모두 적용) : 손절매 : 0.5%
목표수익 : 1%
최소가격변화 : 0.5%, 10봉이내
-시스템A :
var : entry(0),NP(0),NP1(0),NP2(0);
NP = NetProfit;
if bdate != bdate[1] Then{
entry = 0;
NP1 = NP[1];
NP2 = NP1[1];
Condition1 = true;
if NP1 > NP2 Then
Condition1 = false;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
var : ho(0),OL(0),HL(0);
var : maho(0),maOL(0),maHL(0);
var : cnt(0),sumho(0),sumOL(0),sumHL(0);
var : EntryCnt(0);
ho = Dayhigh-Dayopen;
OL = DayOpen-DayLow;
HL = DayHigh-DayLow;
sumho = 0;
sumOL = 0;
sumHL = 0;
for cnt = 1 to 10{
sumho = sumho + (dayhigh(cnt)-dayopen(cnt));
sumOL = sumOL + (DayOpen(cnt)-DayLow(cnt));
sumHL = sumHL + (DayHigh(cnt)-DayLow(cnt));
}
maho = sumho/10;
maOL = sumOL/10;
maHL = sumHL/10;
var1 = dayopen(0)+maho;
var2 = DayOpen(0)-maOL;
var3 = DayOpen(0)+maHL;
var4 = DayOpen(0)-maHL;
var5 = NthMaxList(1,var1,var2,var3,var4);
var6 = NthMaxList(2,var1,var2,var3,var4);
var9 = NthMaxList(3,var1,var2,var3,var4);
var10 = NthMaxList(4,var1,var2,var3,var4);
var7 = (var5+var10)/3;
var8 = (var6+var9)/3;
if MarketPosition == 0 and entry == 0 and Condition1 == true Then{
if var7 > var8 Then
sell("s1",AtStop,var7);
if var7 < var8 Then
sell("s2",Atlimit,Var8);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,var9);
ExitShort("sl1",AtStop,var6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,var9);
ExitShort("sl2",AtStop,var6);
}
-시스템B :
var : TF(0);
var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0);
var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0);
Array : HH[50](0),LL[50](0),CC[50](0);
mav1 = ma(c,5);
mav2 = ma(C,20);
TF = TimeToMinutes(stime)%30;
if Bdate != Bdate[1] Then{
Etime = true;
if stime >= 090000 Then
Xtime = 050000;
Else
Xtime = 060000;
}
if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if HH[25+2] > 0 Then{
HV = HH[0];
LV = LL[0];
HV1 = HH[1];
LV1 = LL[1];
HV2 = HH[2];
LV2 = LL[2];
for cnt = 0 to 25{
if HH[cnt] > HV Then
HV = HH[cnt];
if LL[cnt] < LV Then
LV = LL[cnt];
if HH[cnt+1] > HV Then
HV = HH[cnt+1];
if LL[cnt+1] < LV Then
LV = LL[cnt+1];
if HH[cnt+2] > HV Then
HV = HH[cnt+2];
if LL[cnt+2] < LV Then
LV = LL[cnt+2];
}
var1 = (HV+LV)/3;
var2 = (HV1+LV1)/3;
var3 = (HV2+LV2)/3;
if Etime == true then{
if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then
buy("b",AtMarket);
if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then
ExitLong("bx",AtMarket);
}
}
if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{
Etime = false;
ExitLong();
}
다음글
이전글