첨부 이미지
그림1
안녕하세요?
함수수정요청드립니다.
아래는 당일 골든크로발생시 매수, 데드크로스발생시 매도한다 컨셉의 스크립트입니다.
스크립트에 이격도로 진입을 제어하고자 합니다.
그런데 목표수익 강제청산조건을 넣었을 경우
목표수익에 익절이 되고 익봉에서 진입조건이 유지되면 다시 신호가 발생됩니다.
익절이후 진입조건이 유지되어 신호가 생성되는 거 말고
최초에 골든크로스나 데드크로스가 발생되고 진입신호가 처음 발생될 경우에만 이격도(20이평선 98이하면 매도 신호 생성금지, 102이상이면 매수 신호 생성 금지)를 적용하고 싶습니다.
즉 이평선 교차 시점 이후에 처음에만 발생된 신호 지점에 이격을 적용하고 싶습니다.
------------------------------------------------------------------------------------
input : starttime(70000), xtime(60000);
var : tcond(false),cond1(false),cond2(false);
if stime == starttime or (stime > starttime and stime[1] < starttime) Then{
Tcond = true;
Condition1 = false;
Condition2 = false;
}
if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{
Tcond = false;
}
var1 = ma(c,5);
var2 = ma(c,20);
cond1 = C > var1 and var1 > var2;
cond2 = C < var1 and var1 < var2;
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] Then
buy();
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] Then
sell();
답변 1
예스스탁
예스스탁 답변
2016-04-08 11:26:10
안녕하세요
예스스탁입니다.
input : starttime(70000), xtime(60000);
var : tcond(false),cond1(false),cond2(false);
if stime == starttime or (stime > starttime and stime[1] < starttime) Then{
Tcond = true;
Condition1 = false;
Condition2 = false;
}
if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{
Tcond = false;
}
var1 = ma(c,5);
var2 = ma(c,20);
var3 = Disparity(20);
cond1 = C > var1 and var1 > var2;
cond2 = C < var1 and var1 < var2;
if crossup(var1,var2) Then
value1 = 0;
if CrossDown(var1,var2) Then
value2 = 0;
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] Then{
value1 = value1+1;
if (value1 == 1 and var3 < 102) or (value1 >= 2) Then
buy();
}
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] Then{
value2 = value2+1;
if (value2 == 1 and var3 > 98) or (value2 >= 2) Then
sell();
}
즐거운 하루되세요
> 통큰베팅 님이 쓴 글입니다.
> 제목 : 함수수정요청(251, 이격)
> 안녕하세요?
함수수정요청드립니다.
아래는 당일 골든크로발생시 매수, 데드크로스발생시 매도한다 컨셉의 스크립트입니다.
스크립트에 이격도로 진입을 제어하고자 합니다.
그런데 목표수익 강제청산조건을 넣었을 경우
목표수익에 익절이 되고 익봉에서 진입조건이 유지되면 다시 신호가 발생됩니다.
익절이후 진입조건이 유지되어 신호가 생성되는 거 말고
최초에 골든크로스나 데드크로스가 발생되고 진입신호가 처음 발생될 경우에만 이격도(20이평선 98이하면 매도 신호 생성금지, 102이상이면 매수 신호 생성 금지)를 적용하고 싶습니다.
즉 이평선 교차 시점 이후에 처음에만 발생된 신호 지점에 이격을 적용하고 싶습니다.
------------------------------------------------------------------------------------
input : starttime(70000), xtime(60000);
var : tcond(false),cond1(false),cond2(false);
if stime == starttime or (stime > starttime and stime[1] < starttime) Then{
Tcond = true;
Condition1 = false;
Condition2 = false;
}
if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{
Tcond = false;
}
var1 = ma(c,5);
var2 = ma(c,20);
cond1 = C > var1 and var1 > var2;
cond2 = C < var1 and var1 < var2;
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] Then
buy();
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] Then
sell();