커뮤니티
수식이 제대로 작동이 안됩니다.
2015-07-06 19:34:50
110
글번호 88052
안녕하세요
예스스탁입니다.
input : 익절틱수(20);
var : entry(0);
if stime == 070000 or (stime > 070000 and stime < 070000) Then{
var1 = O;
entry = 0;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if MarketPosition == 0 and entry == 0 Then{
if C > var1 Then
buy();
if C < var1 Then
sell();
}
if entry >= 1 and stime >= 070000 and stime < 055500 Then{
if MarketPosition == 0 and MarketPosition(1) == 1 and
IsExitName("StopProfitTarget",1) == true and C <= ExitPrice(1)-PriceScale*10 and C > var1 Then
buy("bb");
if MarketPosition == 0 and MarketPosition(1) == -1 and
IsExitName("StopProfitTarget",1) == true and C >= ExitPrice(1)+PriceScale*10 and C < var1 Then
Sell("ss");
if MarketPosition == -1 or (MarketPosition == 0 and IsExitName("StopProfitTarget",1) == false) and
crossup(c,var1) Then
buy();
if MarketPosition == 1 or (MarketPosition == 0 and IsExitName("StopProfitTarget",1) == false) and
CrossDown(c,var1) Then
Sell();
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
if stime == 055500 Then{
exitlong();
ExitShort();
}
즐거운 하루되세요
답변 1
예스스탁 예스스탁 답변
2015-07-07 09:02:47
안녕하세요
예스스탁입니다.
시간조건을 잘못지정했습니다.
수정한 식입니다. 수식에 주석을 붙여드립니다.
input : 익절틱수(20);
var : entry(0);
#7시에
#시가저장
#당일 진입횟수 0으로 초기화
if stime == 070000 or (stime > 070000 and stime < 070000) Then{
var1 = O;
entry = 0;
}
#새로운 포지션에 진입하면 1씩 증가
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
#당일 첫번째 진입(7시~다음날 5시 50분 이전)
if MarketPosition == 0 and entry == 0 and var1 > 0 and (stime >= 070000 or stime < 055500) Then{
#종가가 시가보다 크면 매수
if C > var1 Then
buy("b");
#종가가 시가보다 작으면 매도
if C < var1 Then
sell("s");
}
#당일 첫진입 발생 후 (7시~다음날 5시 50분 이전)
if entry >= 1 and (stime >= 070000 or stime < 055500) Then{
#현재 무포지션이고 직전 거래가 매수고 목표수익으로 끝났으면
#직전 청산가보다 10틱이상 하락하고 종가는 시가 이상이면 매수
if MarketPosition == 0 and MarketPosition(1) == 1 and IsExitName("StopProfitTarget",1) == true
and C <= ExitPrice(1)-PriceScale*10 and C > var1 Then
buy("bb");
#현재 무포지션이고 직전 거래가 매도고 목표수익으로 끝났으면
#직전 청산가보다 10틱이상 상승하고 종가는 시가 이하이면 매도
if MarketPosition == 0 and MarketPosition(1) == -1 and
IsExitName("StopProfitTarget",1) == true and C >= ExitPrice(1)+PriceScale*10 and C < var1 Then
Sell("ss");
#매도포지션이거나 무포지션인데 직전거래가 목표수익으로 끝나지 않았으면
#시가 상향돌파하면 매수
if MarketPosition == -1 or (MarketPosition == 0 and IsExitName("StopProfitTarget",1) == false) and
crossup(c,var1) Then
buy();
#매도포지션이거나 무포지션인데 직전거래가 목표수익으로 끝나지 않았으면
#시가 하향이탈하면 매도
if MarketPosition == 1 or (MarketPosition == 0 and IsExitName("StopProfitTarget",1) == false) and
CrossDown(c,var1) Then
Sell();
}
#10틱 수익청산
SetStopProfittarget(PriceScale*익절틱수,PointStop);
즐거운 하루되세요
> 태양의제국 님이 쓴 글입니다.
> 제목 : 수식이 제대로 작동이 안됩니다.
> 안녕하세요
예스스탁입니다.
input : 익절틱수(20);
var : entry(0);
if stime == 070000 or (stime > 070000 and stime < 070000) Then{
var1 = O;
entry = 0;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if MarketPosition == 0 and entry == 0 Then{
if C > var1 Then
buy();
if C < var1 Then
sell();
}
if entry >= 1 and stime >= 070000 and stime < 055500 Then{
if MarketPosition == 0 and MarketPosition(1) == 1 and
IsExitName("StopProfitTarget",1) == true and C <= ExitPrice(1)-PriceScale*10 and C > var1 Then
buy("bb");
if MarketPosition == 0 and MarketPosition(1) == -1 and
IsExitName("StopProfitTarget",1) == true and C >= ExitPrice(1)+PriceScale*10 and C < var1 Then
Sell("ss");
if MarketPosition == -1 or (MarketPosition == 0 and IsExitName("StopProfitTarget",1) == false) and
crossup(c,var1) Then
buy();
if MarketPosition == 1 or (MarketPosition == 0 and IsExitName("StopProfitTarget",1) == false) and
CrossDown(c,var1) Then
Sell();
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
if stime == 055500 Then{
exitlong();
ExitShort();
}
즐거운 하루되세요