커뮤니티
271호
2016-11-23 10:56:24
92
글번호 104267
안녕하세요?
글번호50693번에 답변주신 아래의 함수를
하루 1번 이하로 신호를 생성하고 싶습니다.
하루 2번 이상 진입이 되지 않도록 수정부탁드립니다.
input : Xtime(150000);
var : tcond(false),cond1(false),cond2(false),TT(0),T1(0);
var : b1(0),b2(0),s1(0),s2(0),T(0);
if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{
Tcond = false;
}
if bdate != bdate[1] Then{
Tcond = true;
Condition1 = false;
Condition2 = false;
B1 = 0;
B2 = 0;
S1 = 0;
S2 = 0;
}
var1 = ma(c,5);
var2 = ma(c,10);
var3 = ma(c,20);
var4 = Disparity(20);
cond1 = C > var1 and var1 > var2 and var2 > var3 ;
cond2 = C < var1 and var1 < var2 and var2 < var3 ;
if MarketPosition == 0 Then
TT = TotalTrades;
Else
TT = TotalTrades+1;
if crossup(var1,var2) or CrossDown(var1,var2) Then
T1 = TT;
if cond1 == true and cond1[1] == false then
Condition1 = true;
if cond2 == true and cond2[1] == false then
Condition2 = true;
if Tcond == true And
Condition1 == true and cond1 == true and
var1 > var1[1] and var2 > var2[1] and var3 > var3[1] Then{
if B1 == 0 and TT-T1 == 0 and var4 < 102 and C > C[1] Then{
b1 = index;
}
#첫진입이 아닐때
if B2 == 0 and TT-T1 > 0 and C > C[1] Then
b2 = index;
}
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] and var3 < var3[1] Then{
if S1 == 0 and TT-T1 == 0 and var4 > 98 and C < C[1] Then
s1 = index;
if S2 == 0 and TT-T1 > 0 and C < C[1] Then
s2 = index;
}
if index == b1+3 Then
buy("b1",AtMarket);
if index == b2+3 Then
buy("b2",AtMarket);
if index == s1+3 Then
sell("s1",AtMarket);
if index == s2+3 Then
sell("s2",AtMarket);
if MarketPosition == 1 Then{
B1 = 0;
B2 = 0;
}
if MarketPosition == -1 Then{
S1 = 0;
S2 = 0;
}
SetStopLoss(0.5,PercentStop);
SetStopProfittarget(1,PercentStop);
if sdate == 20161122 Then
MessageLog("%.f",b1);
답변 1
예스스탁 예스스탁 답변
2016-11-23 14:07:25
안녕하세요
예스스탁입니다.
input : Xtime(150000);
var : tcond(false),cond1(false),cond2(false),TT(0),T1(0);
var : b1(0),b2(0),s1(0),s2(0),T(0),entry(0),E1(0);
if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{
Tcond = false;
}
if bdate != bdate[1] Then{
Tcond = true;
Condition1 = false;
Condition2 = false;
B1 = 0;
B2 = 0;
S1 = 0;
S2 = 0;
E1 = TotalTrades;
}
if MarketPosition == 0 Then
entry = TotalTrades-E1;
Else
entry = (TotalTrades-E1)+1;
var1 = ma(c,5);
var2 = ma(c,10);
var3 = ma(c,20);
var4 = Disparity(20);
cond1 = C > var1 and var1 > var2 and var2 > var3 ;
cond2 = C < var1 and var1 < var2 and var2 < var3 ;
if MarketPosition == 0 Then
TT = TotalTrades;
Else
TT = TotalTrades+1;
if crossup(var1,var2) or CrossDown(var1,var2) Then
T1 = TT;
if cond1 == true and cond1[1] == false then
Condition1 = true;
if cond2 == true and cond2[1] == false then
Condition2 = true;
if Tcond == true And
Condition1 == true and cond1 == true and
var1 > var1[1] and var2 > var2[1] and var3 > var3[1] Then{
if B1 == 0 and TT-T1 == 0 and var4 < 102 and C > C[1] Then{
b1 = index;
}
#첫진입이 아닐때
if B2 == 0 and TT-T1 > 0 and C > C[1] Then
b2 = index;
}
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] and var3 < var3[1] Then{
if S1 == 0 and TT-T1 == 0 and var4 > 98 and C < C[1] Then
s1 = index;
if S2 == 0 and TT-T1 > 0 and C < C[1] Then
s2 = index;
}
if index == b1+3 and entry < 1 Then
buy("b1",AtMarket);
if index == b2+3 and entry < 1 Then
buy("b2",AtMarket);
if index == s1+3 and entry < 1 Then
sell("s1",AtMarket);
if index == s2+3 and entry < 1 Then
sell("s2",AtMarket);
if MarketPosition == 1 Then{
B1 = 0;
B2 = 0;
}
if MarketPosition == -1 Then{
S1 = 0;
S2 = 0;
}
SetStopLoss(0.5,PercentStop);
SetStopProfittarget(1,PercentStop);
즐거운 하루되세요
> 통큰베팅 님이 쓴 글입니다.
> 제목 : 271호
> 안녕하세요?
글번호50693번에 답변주신 아래의 함수를
하루 1번 이하로 신호를 생성하고 싶습니다.
하루 2번 이상 진입이 되지 않도록 수정부탁드립니다.
input : Xtime(150000);
var : tcond(false),cond1(false),cond2(false),TT(0),T1(0);
var : b1(0),b2(0),s1(0),s2(0),T(0);
if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{
Tcond = false;
}
if bdate != bdate[1] Then{
Tcond = true;
Condition1 = false;
Condition2 = false;
B1 = 0;
B2 = 0;
S1 = 0;
S2 = 0;
}
var1 = ma(c,5);
var2 = ma(c,10);
var3 = ma(c,20);
var4 = Disparity(20);
cond1 = C > var1 and var1 > var2 and var2 > var3 ;
cond2 = C < var1 and var1 < var2 and var2 < var3 ;
if MarketPosition == 0 Then
TT = TotalTrades;
Else
TT = TotalTrades+1;
if crossup(var1,var2) or CrossDown(var1,var2) Then
T1 = TT;
if cond1 == true and cond1[1] == false then
Condition1 = true;
if cond2 == true and cond2[1] == false then
Condition2 = true;
if Tcond == true And
Condition1 == true and cond1 == true and
var1 > var1[1] and var2 > var2[1] and var3 > var3[1] Then{
if B1 == 0 and TT-T1 == 0 and var4 < 102 and C > C[1] Then{
b1 = index;
}
#첫진입이 아닐때
if B2 == 0 and TT-T1 > 0 and C > C[1] Then
b2 = index;
}
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] and var3 < var3[1] Then{
if S1 == 0 and TT-T1 == 0 and var4 > 98 and C < C[1] Then
s1 = index;
if S2 == 0 and TT-T1 > 0 and C < C[1] Then
s2 = index;
}
if index == b1+3 Then
buy("b1",AtMarket);
if index == b2+3 Then
buy("b2",AtMarket);
if index == s1+3 Then
sell("s1",AtMarket);
if index == s2+3 Then
sell("s2",AtMarket);
if MarketPosition == 1 Then{
B1 = 0;
B2 = 0;
}
if MarketPosition == -1 Then{
S1 = 0;
S2 = 0;
}
SetStopLoss(0.5,PercentStop);
SetStopProfittarget(1,PercentStop);
if sdate == 20161122 Then
MessageLog("%.f",b1);
이전글