커뮤니티
글번호47186번 재질문
2016-04-19 07:08:29
105
글번호 97213
안녕하세요?
글번호 47186번 재질문입니다.
답변 주신 아래의 스크립트에서 첫진입때
"if TT-T1 == 0 and var3 < 102"와 "if TT-T1 == 0 and var3 > 98" 일 때만 진입을 제거하고 싶습니다.
기존에 작성해주신 식으로는 나중에 나오는 신호까지 바뀌어 버립니다.
첫진입의 수량을 0으로 하여 나중에 나오는 신호에 대해서는 신호가 왜곡되지 않게 하고 싶습니다.
수량으로 컨트롤이 되지 않는다면 체결이 되지 않는 지정가 가격으로 주문을 생성하면 될 것 같습니다. (가령 유로화를 사자는 0.1달로로, 팔자는 10달러로)
input : starttime(70000), xtime(60000);
var : tcond(false),cond1(false),cond2(false),TT(0),T1(0);
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 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] Then{
if TT-T1 == 0 and var3 < 102 Then
buy();
#첫진입이 아닐때
if TT-T1 > 0 Then
buy();
}
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] Then{
if TT-T1 == 0 and var3 > 98 Then
sell();
if TT-TT == 0 Then
sell();
}
답변 2
통큰베팅
2016-04-19 07:05:59
통큰베팅 님에 의해 삭제된 답변입니다.
예스스탁 예스스탁 답변
2016-04-19 11:48:44
안녕하세요
예스스탁입니다.
문의하신 내용은 가능하지 않습니다
주문함수의 수량이 0이면 신호가 발생되지 않고
신호가 발생하면 설정창의 매매가격으로 주문이 되므로
수식안에서 주문가격으로 컨트롤도 가능하지 않습니다.
신호가 발생하지 않으면 신호로 산정되는 거래횟수도 증감이 없게 되어
수식이 동작하지 않게 됩니다.
가상으로 체크하는 방법뿐이 없는데
해당 부분은 신호를 하나 건너뛰므로 이전과 같이
이후의 신호에 영향을 주어 변경되는 것을 막을수 없습니다.
즐거운 하루되세요
> 통큰베팅 님이 쓴 글입니다.
> 제목 : 글번호47186번 재질문
> 안녕하세요?
글번호 47186번 재질문입니다.
답변 주신 아래의 스크립트에서 첫진입때
"if TT-T1 == 0 and var3 < 102"와 "if TT-T1 == 0 and var3 > 98" 일 때만 진입을 제거하고 싶습니다.
기존에 작성해주신 식으로는 나중에 나오는 신호까지 바뀌어 버립니다.
첫진입의 수량을 0으로 하여 나중에 나오는 신호에 대해서는 신호가 왜곡되지 않게 하고 싶습니다.
수량으로 컨트롤이 되지 않는다면 체결이 되지 않는 지정가 가격으로 주문을 생성하면 될 것 같습니다. (가령 유로화를 사자는 0.1달로로, 팔자는 10달러로)
input : starttime(70000), xtime(60000);
var : tcond(false),cond1(false),cond2(false),TT(0),T1(0);
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 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] Then{
if TT-T1 == 0 and var3 < 102 Then
buy();
#첫진입이 아닐때
if TT-T1 > 0 Then
buy();
}
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] Then{
if TT-T1 == 0 and var3 > 98 Then
sell();
if TT-TT == 0 Then
sell();
}