커뮤니티
수정부탁드립니다.
2019-10-08 16:02:47
142
글번호 132617
안녕하세요? 원글64402 답글이 누락된것 같아서 다시 올립니다.
방금 테스트해보니 설정한 봉수가 되기만하면 청산이 됩니다.
분명 진입신호도 아닌데 설정한 봉수가 되기만하면 역으로 청산만하고 재진입도 안하는것 같습니다.
진입후 설정한봉수 이내에 역방향진입 신호가나오면 청산후 역진입,
봉수를 벗어나면 외부변수에서 설정해놓은 익절,손절이 되게끔 하고싶습니다.
다시한번만더 부탁드립니다.
감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : Re : 수정 부탁드립니다.
> 안녕하세요
예스스탁입니다.
봉수 이내에만 역진입이 되고, 봉수를 벗어나면 익절,손절청산만 발생합니다.
input : 익절틱수(50),손절틱수(50),n(10);
if C > O and C[1] < O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry <= n) then
buy("b1");
}
if C > O and C[1] < O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry <= n) then
buy("b2");
}
if C < O and C[1] > O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry <= n) then
sell("s1");
}
if C < O and C[1] > O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry <= n) then
sell("s2");
}
if MarketPosition == 1 and BarsSinceEntry >= n then
{
ExitLong("bp",Atlimit,EntryPrice+PriceScale*익절틱수);
ExitLong("bl",Atlimit,EntryPrice-PriceScale*손절틱수);
}
if MarketPosition == -1 and BarsSinceEntry >= n then
{
ExitShort("sp",Atlimit,EntryPrice-PriceScale*익절틱수);
ExitShort("sl",Atlimit,EntryPrice+PriceScale*손절틱수);
}
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : Re : Re : 수정 부탁드립니다.
> 안녕하세요?
죄송합니다. 제가 설명을 잘 못드렸나봅니다ㅠㅠ
제 의도는 봉수 이내에만 역진입이 되고, 봉수를 벗어나면 설정한 익절,손절이 되게끔 하는 것입니다.
다시한번 부탁드립니다.
감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수정 부탁드립니다.
>
안녕하세요
예스스탁입니다.
다시 테스트 해보았지만
포지션 진행중에 반대방향 스위칭은
n으로 지정한 봉수이후에만 됩니다.
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 수정 부탁드립니다.
> 안녕하세요? 아래와 같은 답변 감사히 잘 받았구요. 문제가 있어 수정부탁드립니다.
캔들갯수 지정에 대해서 문제가있습니다.
현재 캔들갯수를 몇개지정하든 무시되고 역방향조건이 나오면 청산후 재진입이 되는것 같습니다.
설명드리자면,
만약 캔들갯수를 5개로 지정을 했다고 가정하겠습니다.
진입후 5개캔들안에 역방향 진입조건이 발생하면 청산후 재진입 하는것이고,
진입후 5개캔들을 오지않으면 지정한 익절틱수와 손절틱수로 주문이 나갔으면합니다.
부탁드립니다. 감사합니다.
----------------------------------------------------------------------------------------
input : 익절틱수(50),손절틱수(50),n(10);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if C > O and C[1] < O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry >= n) then
buy("b1");
}
if C > O and C[1] < O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry >= n) then
buy("b2");
}
if C < O and C[1] > O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry >= n) then
sell("s1");
}
if C < O and C[1] > O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry >= n) then
sell("s2");
}
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 수식작성 부탁드립니다.
> 안녕하세요? 수식작성 부탁드립니다.
진입조건은 그림파일 첨부해놨으니 참고하시면 감사하겠습니다.
***진입조건 (모든조건은 몸통기준입니다)
매수조건1) 음봉다음 양봉에 진입. 단,진입양봉이 전봉음봉의 종가보다 시가가높고, 전봉음봉의 시가보다 종가가 작아야함.
매수조건2) 음봉다음 양봉에 진입. 단,진입양봉이 전봉음봉의 종가보다 시가가낮고, 전봉음봉의 시가보다 종가가 높아야함.
매도조건1) 양봉다음 음봉에 진입. 단,진입음봉이 전봉양봉의 종가보다 시가가낮고, 전봉양봉의 시가보다 종가가 높아야함.
매도조건2) 양봉다음 음봉에 진입. 단,진입음봉이 전봉양봉의 종가보다 시가가높고, 전봉양봉의 시가보다 종가가 낮아야함.
***청산조건
청산조건1) 익절(외부변수)틱, 손절 (외부변수)틱
청산조건2) 보유하고있는 포지션의 "반대방향의 매매"가 포지션진입후 (외부변수)개 이내로 출현시, "반대방향의 매매"대로 청산후 재진입
***기타
포지션 보유시 "청산조건2"를 제외하고 매매신호가 발생하더라도 청산전까지 진입금지.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2019-10-08 17:32:15
안녕하세요
예스스탁입니다.
"제 의도는 봉수 이내에만 역진입이 되고, 봉수를 벗어나면 설정한 익절,손절이 되게끔 하는 것입니다."
위는 문의하신 내용이고 현재수식이 진입이후 N봉까지는 조건충족하면 역방향진입만하고
N봉이후에는 익절이나 손절만 하는 수식입니다.
첨부된 그림은 N이 10입니다.
진입이후 10봉이 되기전에는 반대방향 진입만 하고 10봉 이후부터 손절이나 익절이 발생합니다.
신호의 명칭에서 bp가 매수익절, bl은 매수손절, sp는 매도익절, sl은 매도손절입니다.
그외 진입이나 스위칭은 b1,b2,s1,s2 이름으로 발생합니다.
모두 신호 정상적으로 발생하고 있습니다.
만약 작성하고자 하시는 내용이 위와 반대로
진입이후 N봉 이내에는 익절이나 손절만 하고
N봉 이후부터 역방향 진입을 하는 내용이시면 아래와 같이 작성하셔야 합니다.
질문하신 의도와 답변드린 수식이 어떤 부분에서 다른지 파악이 어려워
추가로 수정해 드리기 어렵습니다.
수식은 사용자분이 직접 작성해 가실때 도움을 드리기 위함입니다.
답변 받으신 수식을 독해하셔서 수식 내용 확인하시고
이후에는 수정보완해 완성하시기 바랍니다.
이 내용에 대해서는 아래 수식까지만 답변드립니다.
input : 익절틱수(50),손절틱수(50),n(10);
if C > O and C[1] < O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry >= n) then
buy("b1");
}
if C > O and C[1] < O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry >= n) then
buy("b2");
}
if C < O and C[1] > O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry >= n) then
sell("s1");
}
if C < O and C[1] > O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry >= n) then
sell("s2");
}
if MarketPosition == 1 and BarsSinceEntry < n then
{
ExitLong("bp",Atlimit,EntryPrice+PriceScale*익절틱수);
ExitLong("bl",Atlimit,EntryPrice-PriceScale*손절틱수);
}
if MarketPosition == -1 and BarsSinceEntry < n then
{
ExitShort("sp",Atlimit,EntryPrice-PriceScale*익절틱수);
ExitShort("sl",Atlimit,EntryPrice+PriceScale*손절틱수);
}
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 수정부탁드립니다.
> 안녕하세요? 원글64402 답글이 누락된것 같아서 다시 올립니다.
방금 테스트해보니 설정한 봉수가 되기만하면 청산이 됩니다.
분명 진입신호도 아닌데 설정한 봉수가 되기만하면 역으로 청산만하고 재진입도 안하는것 같습니다.
진입후 설정한봉수 이내에 역방향진입 신호가나오면 청산후 역진입,
봉수를 벗어나면 외부변수에서 설정해놓은 익절,손절이 되게끔 하고싶습니다.
다시한번만더 부탁드립니다.
감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : Re : 수정 부탁드립니다.
> 안녕하세요
예스스탁입니다.
봉수 이내에만 역진입이 되고, 봉수를 벗어나면 익절,손절청산만 발생합니다.
input : 익절틱수(50),손절틱수(50),n(10);
if C > O and C[1] < O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry <= n) then
buy("b1");
}
if C > O and C[1] < O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry <= n) then
buy("b2");
}
if C < O and C[1] > O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry <= n) then
sell("s1");
}
if C < O and C[1] > O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry <= n) then
sell("s2");
}
if MarketPosition == 1 and BarsSinceEntry >= n then
{
ExitLong("bp",Atlimit,EntryPrice+PriceScale*익절틱수);
ExitLong("bl",Atlimit,EntryPrice-PriceScale*손절틱수);
}
if MarketPosition == -1 and BarsSinceEntry >= n then
{
ExitShort("sp",Atlimit,EntryPrice-PriceScale*익절틱수);
ExitShort("sl",Atlimit,EntryPrice+PriceScale*손절틱수);
}
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : Re : Re : 수정 부탁드립니다.
> 안녕하세요?
죄송합니다. 제가 설명을 잘 못드렸나봅니다ㅠㅠ
제 의도는 봉수 이내에만 역진입이 되고, 봉수를 벗어나면 설정한 익절,손절이 되게끔 하는 것입니다.
다시한번 부탁드립니다.
감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수정 부탁드립니다.
>
안녕하세요
예스스탁입니다.
다시 테스트 해보았지만
포지션 진행중에 반대방향 스위칭은
n으로 지정한 봉수이후에만 됩니다.
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 수정 부탁드립니다.
> 안녕하세요? 아래와 같은 답변 감사히 잘 받았구요. 문제가 있어 수정부탁드립니다.
캔들갯수 지정에 대해서 문제가있습니다.
현재 캔들갯수를 몇개지정하든 무시되고 역방향조건이 나오면 청산후 재진입이 되는것 같습니다.
설명드리자면,
만약 캔들갯수를 5개로 지정을 했다고 가정하겠습니다.
진입후 5개캔들안에 역방향 진입조건이 발생하면 청산후 재진입 하는것이고,
진입후 5개캔들을 오지않으면 지정한 익절틱수와 손절틱수로 주문이 나갔으면합니다.
부탁드립니다. 감사합니다.
----------------------------------------------------------------------------------------
input : 익절틱수(50),손절틱수(50),n(10);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if C > O and C[1] < O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry >= n) then
buy("b1");
}
if C > O and C[1] < O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry >= n) then
buy("b2");
}
if C < O and C[1] > O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry >= n) then
sell("s1");
}
if C < O and C[1] > O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry >= n) then
sell("s2");
}
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 수식작성 부탁드립니다.
> 안녕하세요? 수식작성 부탁드립니다.
진입조건은 그림파일 첨부해놨으니 참고하시면 감사하겠습니다.
***진입조건 (모든조건은 몸통기준입니다)
매수조건1) 음봉다음 양봉에 진입. 단,진입양봉이 전봉음봉의 종가보다 시가가높고, 전봉음봉의 시가보다 종가가 작아야함.
매수조건2) 음봉다음 양봉에 진입. 단,진입양봉이 전봉음봉의 종가보다 시가가낮고, 전봉음봉의 시가보다 종가가 높아야함.
매도조건1) 양봉다음 음봉에 진입. 단,진입음봉이 전봉양봉의 종가보다 시가가낮고, 전봉양봉의 시가보다 종가가 높아야함.
매도조건2) 양봉다음 음봉에 진입. 단,진입음봉이 전봉양봉의 종가보다 시가가높고, 전봉양봉의 시가보다 종가가 낮아야함.
***청산조건
청산조건1) 익절(외부변수)틱, 손절 (외부변수)틱
청산조건2) 보유하고있는 포지션의 "반대방향의 매매"가 포지션진입후 (외부변수)개 이내로 출현시, "반대방향의 매매"대로 청산후 재진입
***기타
포지션 보유시 "청산조건2"를 제외하고 매매신호가 발생하더라도 청산전까지 진입금지.
감사합니다.
다음글
이전글