답변완료
totaltrades 수식 문의
항상 도움에 감사드립니다.
아래와 같이 수식을 구성했는데요.
if MarketPosition == -1 Then
{
ExitShort("sp1",AtLimit,하단-(상단-하단)*1,"",1,1);
ExitShort("sp2",AtLimit,하단-(상단-하단)*2);
}
if MarketPosition == 1 Then
{
ExitLong("Bp1",AtLimit,상단+(상단-하단)*1,"",1,1)
ExitLong("Bp2",AtLimit,상단+(상단-하단)*2);
}
if TotalTrades > TotalTrades[1] and (IsExitName("bp2",1) or IsExitName("sp2",1)) Then
xcond = true;
MessageLog("xcond %s", xcond);
위의 코드를 실행시켜서
청산이 두번 나눠서 된 후 Bp2가 나오면
xcond 가 true로 바뀌고
messagelog도 true로 나올 거라고 생각했는데요.
그렇게 나오지가 않는데....
이유가 뭔지, 어떻게 하면 xcond를 true로 바꿀 수 있는지 궁금합니다.
도움 부탁드립니다.
-----------------------------------------------------------
참고로
if MarketPosition == -1 Then
{
ExitShort("sp2",AtLimit,하단-(상단-하단)*2);
}
if MarketPosition == 1 Then
{
ExitLong("Bp2",AtLimit,상단+(상단-하단)*2);
}
if TotalTrades > TotalTrades[1] and (IsExitName("bp2",1) or IsExitName("sp2",1)) Then
xcond = true;
MessageLog("xcond %s", xcond);
위와 같이 청산을 나눠서 하지 않고 한번에 하는 코드로 수정하면
xcond는 true로 나오네요..
하지만 저는 맨 위의 코드 처럼
분할 청산 완료 후에
xcond가 true로 바뀔 수 있게 코드를 작성하고 싶어서
도움 요청합니다.
2023-09-21
1187
글번호 172635
시스템
답변완료
부탁드립니다
input : 일정배수(5),단기(10),장기(60),RSIP(14);
var : atrv(0),mm(0),hh(0),ll(0),RSIV(0);
atrv=((avg(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),단기,1)/C[1]*100+
avg(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),장기,1)/C[1]*100)/2)*일정배수;
mm=(DayClose(20)+DayClose(19)+DayClose(18)+DayClose(17)+DayClose(16)+DayClose(15)+
DayClose(14)+DayClose(13)+DayClose(12)+DayClose(11)+DayClose(10)+DayClose(9)+
DayClose(8)+DayClose(7)+DayClose(6)+DayClose(5)+DayClose(4)+DayClose(3)+
DayClose(2)+DayClose(1))/20;
hh = mm+mm*atrv/100;
ll = mm-mm*atrv/100;
RSIV = rsi(RSIP);
if MarketPosition == 0 and c <ll and RSIV < 30 Then
Buy("b");
if MarketPosition == 1 Then
{
if RSIV < 30 Then
Buy("bb");
if RSIV > 50 Then
ExitLong("bx1");
ExitLong("bx",AtLimit,mm);
}
여기서 첫매수조건이 종가에 ll선이 밑에 있고 rsi가 30밑일때 매수하는 조건으로 말씀드렸던건데 이게 장중에 그냥 ll선밑으로 내려가고 rsi가 30밑이면 잡히는건가요? 저가는 ll선 밑에있는데 종가기준으로는 ll선 위에있는데 매수가 들어간종목들이 시뮬레이션 돌려보니 있는것 같아서요.
2023-09-21
897
글번호 172629
시스템