커뮤니티

marketposition!=1(또는 -1) 등을 삽입하는 경우와 안하는 경우의 차이

프로필 이미지
대단한콩
2019-05-22 09:21:39
272
글번호 128867
답변완료
안녕하세요^^ 진입횟수를 2회로 제한하고 피라미딩을 허용하지 않는 해외선물 당일청산 데이트레이딩 시스템(한국시각 오후5시시작~다음날 새벽5시종료)이고 리버스 시스템인데, 진입조건 작성시 매수시에는 marketposion!=1, 매도시에는 marketposition!=-1을 삽입할때는 원하는 조건대로 신호가 발생하는데 삽입하지 않을때는 제맘대로 신호가 다르게 발생합니다. 더 난처한건 marketposition문구를 삽입하지 않을때의 성과가 더 좋다는 점입니다. 이런 현상은 왜 발생하는지 여쭤봅니다. --아래(질문 이해가 안가실까봐 조금더 자세히 적어봅니다.) #설명 : 다우지수선물 데이트레이딩을 진입횟수 2회로 제한하여 아래처럼 진행을 하는데, (1) 매수(매도)상태에서 매도(매수)신호가 나오면 청산후 바로 매도(매수)잡는 리버스시스템입니다. (2) 피라미딩은 허용하지 않고 1계약씩 두번 들어가면 끝나고 장마감전에 다 청산하는 형태입니다. 아래와같이 대략적인 수식을 요약했습니다. 질문 수식에서 매수의 경우 marketposition!=1, 매도의 경우 marketposition!=-1을 아래수식과 같이 삽입하는 경우나 삽입하지 않는 경우나 차이가 없을 것같은데 실제 시스템이 가동할때는 똑같은 상황에서도 marketposition=!1(또는 -1)을 삽입한식에서는 매수/매도신호가 나오는데 삽입하지 않은 식에서는 신호발생이 안되는 현상이 발생합니다. 즉, marketposition!=1(or-1)을 사용한 경우는 조건식대로 신호가 발생하는데 사용하지 않은 경우는 제맘대로 입니다. 왜그런건지...ㅠㅠ 이런 경우 왜 그런건지 궁금합니다. 아래와 같이 조건이 되면 무조건 신호가 나갈수 있도록 하고 싶은데 어떻게 작업하는게 맞나요? 진입횟수제한식이 틀려서인지 피라미딩설정을 해서그런지 여러가지로 궁리해봐도 안풀리네요. 추가로 진입횟구 제한식은 아래처럼 해도 맞는건지 궁금합니다. 감사합니다.ㅠㅠ input : numberQ(2) If Bdate[1] != Bdate Then countQ = 0; 진입 1.매수 if marketposition!=1 and buycondition1==true and countQ < NumberQ then { buy("long1"); countQ = countQ +1;} if marketposition!=1 and buycondition2==true and countQ < NumberQ then { buy("long2"); countQ = countQ +1;} 2. 매도 if marketposition!=-1 and sellcondition1==true and countQ < NumberQ then { sell("short1"); countQ = countQ +1;} if marketposition!=-1 and sellcondition2==true and countQ < NumberQ then { sell("short2"); countQ = countQ +1;} 3. 청산 (1)익절 생략 (2)손절 생략
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2019-05-22 09:51:06

안녕하세요 예스스탁입니다. 수식에서 countQ는 Buy와 Sell함수에 종속되는 것이 아닙니다. if문에 종속되는 부분이고 if 조건이 만족하면 1씩 증가를 합니다. 피라미딩을 허용하지 않으면 Buy는 무포지션이거나 매도포지션 상태에서만 발생하고 Sell은 무포지션이거나 매수포지션 상태일때만 발생하게 됩니다. 그러므로 작성하신 수식 구조에서는 if문에 marketposition!=1나 marketposition!=-1 조건이 있는것과 없는 것은 상당히 차이가 있습니다. if marketposition!=1 and buycondition1==true and countQ < NumberQ then { buy("long1"); countQ = countQ +1; } 해당 수식에서 위와 같이 포지션관련 조건이 있으면 신호 발생과 카운트 해야하는 조건이 일치해서 신호 발생시에만 카운트가 증가하지만 if buycondition1==true and countQ < NumberQ then { buy("long1"); countQ = countQ +1; } 위와 같이 포지션관련 조건이 없으면 Buy신호는 랭귀지 체계상 무포지션이나 매도포지션일떄만 발생하는데 countQ는 포지션과 관계없이 조건만 충족되면 카운트가 증가하게 됩니다. 매수신호 발생 후 매도신호 발생전에 buycondition1==true이나 buycondition2==true가 추가적으로 만족하면 카운트가 증가하고 반대로 매도신호 발생 후 매수신호 발생전에 sellcondition1==true이나 sellcondition2==true가 만족하면 카운트가 증가하게 됩니다. 즉 실제 신호발생횟수와 countQ의 체크가 서로 다르게 됩니다. 그러므로 if문에 종속되는 countQ를 실제 신호발생과 동일시점에만 카운트를 증가하기 위해 marketposition!=1와 marketposition!=-1과 같은 조건을 주게 되는 것입니다. 해당 포지션 조건이 없을때 수익이 더 좋은 부분은 우연한 부분으로 연관성이 있다고 판단하기 어렵습니다. onclose나 atmarket타입의 진입에서는 기존 포지션 조건 사용하는 내용으로 사용하셔도 되지만 다른 타입에서는 맞지 않게 됩니다. 당일 진입횟수 카운트는 아래와 같이 작성해 사용하시면 됩니다. if bdate != bdate[1] Then countQ = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then countQ = countQ+1; if marketposition!=1 and buycondition1==true and countQ < NumberQ then buy("long1"); if marketposition!=1 and buycondition2==true and countQ < NumberQ then buy("long2"); if marketposition!=-1 and sellcondition1==true and countQ < NumberQ then sell("short1"); if marketposition!=-1 and sellcondition2==true and countQ < NumberQ then sell("short2"); 즐거운 하루되세요 > 대단한콩 님이 쓴 글입니다. > 제목 : marketposition!=1(또는 -1) 등을 삽입하는 경우와 안하는 경우의 차이 > 안녕하세요^^ 진입횟수를 2회로 제한하고 피라미딩을 허용하지 않는 해외선물 당일청산 데이트레이딩 시스템(한국시각 오후5시시작~다음날 새벽5시종료)이고 리버스 시스템인데, 진입조건 작성시 매수시에는 marketposion!=1, 매도시에는 marketposition!=-1을 삽입할때는 원하는 조건대로 신호가 발생하는데 삽입하지 않을때는 제맘대로 신호가 다르게 발생합니다. 더 난처한건 marketposition문구를 삽입하지 않을때의 성과가 더 좋다는 점입니다. 이런 현상은 왜 발생하는지 여쭤봅니다. --아래(질문 이해가 안가실까봐 조금더 자세히 적어봅니다.) #설명 : 다우지수선물 데이트레이딩을 진입횟수 2회로 제한하여 아래처럼 진행을 하는데, (1) 매수(매도)상태에서 매도(매수)신호가 나오면 청산후 바로 매도(매수)잡는 리버스시스템입니다. (2) 피라미딩은 허용하지 않고 1계약씩 두번 들어가면 끝나고 장마감전에 다 청산하는 형태입니다. 아래와같이 대략적인 수식을 요약했습니다. 질문 수식에서 매수의 경우 marketposition!=1, 매도의 경우 marketposition!=-1을 아래수식과 같이 삽입하는 경우나 삽입하지 않는 경우나 차이가 없을 것같은데 실제 시스템이 가동할때는 똑같은 상황에서도 marketposition=!1(또는 -1)을 삽입한식에서는 매수/매도신호가 나오는데 삽입하지 않은 식에서는 신호발생이 안되는 현상이 발생합니다. 즉, marketposition!=1(or-1)을 사용한 경우는 조건식대로 신호가 발생하는데 사용하지 않은 경우는 제맘대로 입니다. 왜그런건지...ㅠㅠ 이런 경우 왜 그런건지 궁금합니다. 아래와 같이 조건이 되면 무조건 신호가 나갈수 있도록 하고 싶은데 어떻게 작업하는게 맞나요? 진입횟수제한식이 틀려서인지 피라미딩설정을 해서그런지 여러가지로 궁리해봐도 안풀리네요. 추가로 진입횟구 제한식은 아래처럼 해도 맞는건지 궁금합니다. 감사합니다.ㅠㅠ input : numberQ(2) If Bdate[1] != Bdate Then countQ = 0; 진입 1.매수 if marketposition!=1 and buycondition1==true and countQ < NumberQ then { buy("long1"); countQ = countQ +1;} if marketposition!=1 and buycondition2==true and countQ < NumberQ then { buy("long2"); countQ = countQ +1;} 2. 매도 if marketposition!=-1 and sellcondition1==true and countQ < NumberQ then { sell("short1"); countQ = countQ +1;} if marketposition!=-1 and sellcondition2==true and countQ < NumberQ then { sell("short2"); countQ = countQ +1;} 3. 청산 (1)익절 생략 (2)손절 생략
프로필 이미지

대단한콩

2019-05-22 10:11:24

> 예스스탁 님이 쓴 글입니다. > 제목 : Re : marketposition!=1(또는 -1) 등을 삽입하는 경우와 안하는 경우의 차이 > 안녕하세요 예스스탁입니다. 수식에서 countQ는 Buy와 Sell함수에 종속되는 것이 아닙니다. if문에 종속되는 부분이고 if 조건이 만족하면 1씩 증가를 합니다. 피라미딩을 허용하지 않으면 Buy는 무포지션이거나 매도포지션 상태에서만 발생하고 Sell은 무포지션이거나 매수포지션 상태일때만 발생하게 됩니다. 그러므로 작성하신 수식 구조에서는 if문에 marketposition!=1나 marketposition!=-1 조건이 있는것과 없는 것은 상당히 차이가 있습니다. if marketposition!=1 and buycondition1==true and countQ < NumberQ then { buy("long1"); countQ = countQ +1; } 해당 수식에서 위와 같이 포지션관련 조건이 있으면 신호 발생과 카운트 해야하는 조건이 일치해서 신호 발생시에만 카운트가 증가하지만 if buycondition1==true and countQ < NumberQ then { buy("long1"); countQ = countQ +1; } 위와 같이 포지션관련 조건이 없으면 Buy신호는 랭귀지 체계상 무포지션이나 매도포지션일&#46468;만 발생하는데 countQ는 포지션과 관계없이 조건만 충족되면 카운트가 증가하게 됩니다. 매수신호 발생 후 매도신호 발생전에 buycondition1==true이나 buycondition2==true가 추가적으로 만족하면 카운트가 증가하고 반대로 매도신호 발생 후 매수신호 발생전에 sellcondition1==true이나 sellcondition2==true가 만족하면 카운트가 증가하게 됩니다. 즉 실제 신호발생횟수와 countQ의 체크가 서로 다르게 됩니다. 그러므로 if문에 종속되는 countQ를 실제 신호발생과 동일시점에만 카운트를 증가하기 위해 marketposition!=1와 marketposition!=-1과 같은 조건을 주게 되는 것입니다. 해당 포지션 조건이 없을때 수익이 더 좋은 부분은 우연한 부분으로 연관성이 있다고 판단하기 어렵습니다. onclose나 atmarket타입의 진입에서는 기존 포지션 조건 사용하는 내용으로 사용하셔도 되지만 다른 타입에서는 맞지 않게 됩니다. 당일 진입횟수 카운트는 아래와 같이 작성해 사용하시면 됩니다. if bdate != bdate[1] Then countQ = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then countQ = countQ+1; if marketposition!=1 and buycondition1==true and countQ < NumberQ then buy("long1"); if marketposition!=1 and buycondition2==true and countQ < NumberQ then buy("long2"); if marketposition!=-1 and sellcondition1==true and countQ < NumberQ then sell("short1"); if marketposition!=-1 and sellcondition2==true and countQ < NumberQ then sell("short2"); 즐거운 하루되세요 > 대단한콩 님이 쓴 글입니다. > 제목 : marketposition!=1(또는 -1) 등을 삽입하는 경우와 안하는 경우의 차이 > 안녕하세요^^ 진입횟수를 2회로 제한하고 피라미딩을 허용하지 않는 해외선물 당일청산 데이트레이딩 시스템(한국시각 오후5시시작~다음날 새벽5시종료)이고 리버스 시스템인데, 진입조건 작성시 매수시에는 marketposion!=1, 매도시에는 marketposition!=-1을 삽입할때는 원하는 조건대로 신호가 발생하는데 삽입하지 않을때는 제맘대로 신호가 다르게 발생합니다. 더 난처한건 marketposition문구를 삽입하지 않을때의 성과가 더 좋다는 점입니다. 이런 현상은 왜 발생하는지 여쭤봅니다. --아래(질문 이해가 안가실까봐 조금더 자세히 적어봅니다.) #설명 : 다우지수선물 데이트레이딩을 진입횟수 2회로 제한하여 아래처럼 진행을 하는데, (1) 매수(매도)상태에서 매도(매수)신호가 나오면 청산후 바로 매도(매수)잡는 리버스시스템입니다. (2) 피라미딩은 허용하지 않고 1계약씩 두번 들어가면 끝나고 장마감전에 다 청산하는 형태입니다. 아래와같이 대략적인 수식을 요약했습니다. 질문 수식에서 매수의 경우 marketposition!=1, 매도의 경우 marketposition!=-1을 아래수식과 같이 삽입하는 경우나 삽입하지 않는 경우나 차이가 없을 것같은데 실제 시스템이 가동할때는 똑같은 상황에서도 marketposition=!1(또는 -1)을 삽입한식에서는 매수/매도신호가 나오는데 삽입하지 않은 식에서는 신호발생이 안되는 현상이 발생합니다. 즉, marketposition!=1(or-1)을 사용한 경우는 조건식대로 신호가 발생하는데 사용하지 않은 경우는 제맘대로 입니다. 왜그런건지...ㅠㅠ 이런 경우 왜 그런건지 궁금합니다. 아래와 같이 조건이 되면 무조건 신호가 나갈수 있도록 하고 싶은데 어떻게 작업하는게 맞나요? 진입횟수제한식이 틀려서인지 피라미딩설정을 해서그런지 여러가지로 궁리해봐도 안풀리네요. 추가로 진입횟구 제한식은 아래처럼 해도 맞는건지 궁금합니다. 감사합니다.ㅠㅠ input : numberQ(2) If Bdate[1] != Bdate Then countQ = 0; 진입 1.매수 if marketposition!=1 and buycondition1==true and countQ < NumberQ then { buy("long1"); countQ = countQ +1;} if marketposition!=1 and buycondition2==true and countQ < NumberQ then { buy("long2"); countQ = countQ +1;} 2. 매도 if marketposition!=-1 and sellcondition1==true and countQ < NumberQ then { sell("short1"); countQ = countQ +1;} if marketposition!=-1 and sellcondition2==true and countQ < NumberQ then { sell("short2"); countQ = countQ +1;} 3. 청산 (1)익절 생략 (2)손절 생략