커뮤니티
진입횟수
2018-11-22 23:04:31
219
글번호 123836
안녕하세요.
1. 합성시스템에서 모든 매수 신호를 망라하고 매수신호는 오직 1번만 발생하게 하려면 어떻게
하는지 궁금합니다
2. 그리고 아래와 같은 식을 사용해왔는데
var : B1count(0);
if Bdate != Bdate[1] Then
      B1count = 0;
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수" Then
      B1count = B1count+1;
if B1count < 1 and 매수조건 Then
      buy("매수");
이 식의 문제점은 매수조건이면 손절이 발생한 같은 봉에서 재진입을 한다는 것입니다.
이런 현상을 막으려고
if (MarketPosition == 0 and (IsEntryName("매수",1) == false or IsExitName("StopLoss",1) == false)) or
(MarketPosition == 1 and LatestEntryName(0) != "매수") and 매수조건
then
 buy("매수");
이렇게도 해봤는데 그것도 잘 안됩니다.ㅠㅠ
감사합니다
답변 3
맘속의행복
2018-11-23 10:42:13
진입하여 손절(Stoploss)이발생하면 같은 포지션의 신호는 20개봉 동안 진입을 안 시키는 수식이 궁금합니다. 즉, "매수1"이라는 이름의 매수신호가 진입 후 손절이 발생하면 다른 매수신호들도 20개 봉 내에선 발생하지 않게 하는 것입니다.
감사합니다
> 맘속의행복 님이 쓴 글입니다.
> 제목 : 진입횟수
> 안녕하세요.
1. 합성시스템에서 모든 매수 신호를 망라하고 매수신호는 오직 1번만 발생하게 하려면 어떻게
하는지 궁금합니다
2. 그리고 아래와 같은 식을 사용해왔는데
var : B1count(0);
if Bdate != Bdate[1] Then
      B1count = 0;
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수" Then
      B1count = B1count+1;
if B1count < 1 and 매수조건 Then
      buy("매수");
이 식의 문제점은 매수조건이면 손절이 발생한 같은 봉에서 재진입을 한다는 것입니다.
이런 현상을 막으려고
if (MarketPosition == 0 and (IsEntryName("매수",1) == false or IsExitName("StopLoss",1) == false)) or
(MarketPosition == 1 and LatestEntryName(0) != "매수") and 매수조건
then
 buy("매수");
이렇게도 해봤는데 그것도 잘 안됩니다.ㅠㅠ
감사합니다
예스스탁 예스스탁 답변
2018-11-27 10:04:49
안녕하세요?
아래식은 당일 매수와 매도를 각각 1회씩만 진입하도록 제한하는 예제 식입니다.
#당일 매수/매도 각 1회씩 제한
Condition1 = CountIF(MarketPosition==1,dayindex+1) <> 0;
Condition2 = CountIF(MarketPosition==-1,dayindex+1) <> 0;
if Condition1 == false Then {
if CrossUp(ma(C,5), ma(C,20)) Then
buy();
}
if Condition2 == false Then {
if CrossDown(ma(C,5), ma(C,20)) Then
sell();
}
김사합니다.
> 맘속의행복 님이 쓴 글입니다.
> 제목 : 진입횟수
> 안녕하세요.
1. 합성시스템에서 모든 매수 신호를 망라하고 매수신호는 오직 1번만 발생하게 하려면 어떻게
하는지 궁금합니다
2. 그리고 아래와 같은 식을 사용해왔는데
var : B1count(0);
if Bdate != Bdate[1] Then
B1count = 0;
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수" Then
B1count = B1count+1;
if B1count < 1 and 매수조건 Then
buy("매수");
이 식의 문제점은 매수조건이면 손절이 발생한 같은 봉에서 재진입을 한다는 것입니다.
이런 현상을 막으려고
if (MarketPosition == 0 and (IsEntryName("매수",1) == false or IsExitName("StopLoss",1) == false)) or
(MarketPosition == 1 and LatestEntryName(0) != "매수") and 매수조건
then
buy("매수");
이렇게도 해봤는데 그것도 잘 안됩니다.ㅠㅠ
감사합니다
예스스탁 예스스탁 답변
2018-11-27 10:16:12
안녕하세요?
매수 포지션 손절 후 20봉 동안 매수진입 금지 예제 식입니다.
if IsExitName("StopLoss",1) Then {
if countif(MarketPosition == 1, 20) == 0 Then {
if Crossup(ma(C,3), ma(C,10)) Then
buy();
}
}
else if Crossup(ma(C,3), ma(C,10)) Then
buy();
if Crossdown(ma(C,3), ma(C,10)) Then
ExitLong();
setstoploss(1);
감사합니다.
> 맘속의행복 님이 쓴 글입니다.
> 제목 : 추가질문입니다
> 진입하여 손절(Stoploss)이발생하면 같은 포지션의 신호는 20개봉 동안 진입을 안 시키는 수식이 궁금합니다. 즉, "매수1"이라는 이름의 매수신호가 진입 후 손절이 발생하면 다른 매수신호들도 20개 봉 내에선 발생하지 않게 하는 것입니다.
감사합니다
> 맘속의행복 님이 쓴 글입니다.
> 제목 : 진입횟수
> 안녕하세요.
1. 합성시스템에서 모든 매수 신호를 망라하고 매수신호는 오직 1번만 발생하게 하려면 어떻게
하는지 궁금합니다
2. 그리고 아래와 같은 식을 사용해왔는데
var : B1count(0);
if Bdate != Bdate[1] Then
B1count = 0;
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "매수" Then
B1count = B1count+1;
if B1count < 1 and 매수조건 Then
buy("매수");
이 식의 문제점은 매수조건이면 손절이 발생한 같은 봉에서 재진입을 한다는 것입니다.
이런 현상을 막으려고
if (MarketPosition == 0 and (IsEntryName("매수",1) == false or IsExitName("StopLoss",1) == false)) or
(MarketPosition == 1 and LatestEntryName(0) != "매수") and 매수조건
then
buy("매수");
이렇게도 해봤는데 그것도 잘 안됩니다.ㅠㅠ
감사합니다
다음글
이전글