커뮤니티
질문입니다,
2017-03-21 22:54:36
106
글번호 108072
이런 질문을 드렸고 답변을 받았습니다.
//--------------------
안녕하세요
예스스탁입니다.
현재 수식의 문제는
하나의 봉에서 반대방향 진입과 추가진입이 동시 셋팅되어
다음봉에서 신호가 같이 발생하는 부분에 있습니다.
매수추가 진입이 반대방향 조건과 겹치지 않게 조건을 추가해 주셔야 합니다.
if marketposition(0) <= 0 and crossup(c, ma(c,5)) then
{
buy("b", atmarket, def, 1);
}
if marketposition(0) >= 0 and crossdown(c, ma(c,10)) then
{
sell("s", atmarket, def, 1);
}
If MarketPosition(0) == 1 && CurrentContracts == 1 and crossdown(c, ma(c,10)) == false Then
{
Buy("+2", AtStop, LatestEntryPrice + (0.05 * 5));
}
If MarketPosition(0) == -1 && CurrentContracts == 1 and crossup(c, ma(c,5)) == false Then
{
Sell("-2", AtStop, LatestEntryPrice - (0.05 * 5));
}
즐거운 하루되세요
> yanartas 님이 쓴 글입니다.
> 제목 : 질문입니다.
> 선물에서 시스템을 작성해서 운영하고자 합니다.
피라미딩에 관련한 질문입니다.
일단 1계약으로 매수, 매도하는 시스템을 작성하였습니다.
신호는 AtMarket으로 작성하였습니다.
피라미딩은 매수(매도)로 진입하였을 때 진입가격대비 5틱 상승(하락)했을 때
추가로 1계약을 진입하도록 하였습니다.
신호는 AtStop으로 작성하였습니다.
예를들면 이렇습니다.
if marketposition(0) <= 0 and crossup(c, ma(5)) then
{ buy('b", atmarket, def, 1);}
if marketposition(0) >= 0 and crossdown(c, ma(10)) then
{ sell("s", atmarket, def, 1); }
If MarketPosition(0) == 1 && CurrentContracts == 1 Then
{ Buy("+2", AtStop, LatestEntryPrice + (0.05 * 5)); }
If MarketPosition(0) == -1 && CurrentContracts == 1 Then
{ Sell("-2", AtStop, LatestEntryPrice - (0.05 * 5));}
그런데 한가지 문제점이 생겼는데,
예를들어 매도로 진입한 후에 매도로 진입한 봉에서 가격이 상승하더니
매수 피라미딩신호가 발생하여 매수로 포지션이 바뀌어 버리는 현상이 발생합니다.
아마도 제 생각으로는 AtStop으로 피라미딩을 진입하게 만들어서 이런 현상이 발생한 듯 합니다.
원래 제 의도는 초기진입이 매수("b")라면 그 후에는 매도("s") 혹은 매수피라미딩("+2") 신호만 발생시키고 싶고, 초기진입이 매도("s")라면 그 후에는 매수("b") 혹은 매도피라미딩("-2") 신호만 발생시키고 싶습니다.
즉, 매수 진입 후 매도피라미딩 진입이나, 매도 진입 후 매수피라미딩 신호는 나오지 않게 하고 싶습니다.
왜 이런 현상이 발생하는지 그 이유와
이를 방지할 수 있는 방법을 간단한 예시로 부탁드리겠습니다.
감사합니다.
//----------------------
질문을 드립니다.
답변을 주신 방법 이외에,
매수("b") 이후에 매도피라미딩("-2")가 나가지 않고,
매도("s") 이후에 매수피라미딩("+2")가 나가지 않게 하는 방법이 없을까요?
이런 질문을 드리는 이유가 현재 제가 작성한 시스템이,
"b"와 "s"가 여러가지 조건으로 코딩되어 있어서 답변주신 내용으로 간단히 코딩이 되지않습니다.
따라서, 매수("b") 포지션이 나간 후에는 매도("s") 포지션신호 혹은 매수피라미딩신호("+2")만 나가고,
매도("s") 포지션이 나간 후에는 매수("b") 포지션신호 혹은 매도피라미딩신호("-2")만 나가게 하고 싶습니다.
즉, 매수 포지션 후 매도피라미딩 시그널이 발생하지 않고,
매도 포지션 후 매수피라미딩 시그널이 발생하지 않게 하는 방법을 알고싶습니다.
위에서 답변주신 방법과 다른 방법으로 말이죠.
같은 질문일 수 있지만 예시로 부탁드립니다.
꼭 부탁드립니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2017-03-22 16:04:14
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
var : Bcond(false),Scond(false);
#현재봉에서 매수첫진입조건이 만족했는지 판단
#변수 매봉 초기화
Bcond = false;
#여러 매수조건 중 만족하면 true
if marketposition(0) <= 0 and 매수조건1 then
{
Bcond = true;
buy("b1", atmarket, def, 1);
}
if marketposition(0) <= 0 and 매도조건2 then
{
Bcond = true;
buy("b2", atmarket, def, 1);
}
#현재봉에서 매도첫진입조건이 만족했는지 판단
#변수 매봉 초기화
Scond = false;
#여러 매도조건 중 만족하면 true
if marketposition(0) >= 0 and 매도조건1 then
{
Scond = true;
sell("s1", atmarket, def, 1);
}
if marketposition(0) <= 0 and 매도조건2 then
{
Scond = true;
sell("s2", atmarket, def, 1);
}
#추가진입은 각 반대진입조건이 만족하지 않을때만 셋팅하고 진입하게 함
If MarketPosition(0) == 1 && CurrentContracts == 1 and Scond == false Then
{
Buy("+2", AtStop, LatestEntryPrice + (0.05 * 5));
}
If MarketPosition(0) == -1 && CurrentContracts == 1 and Bcond == false Then
{
Sell("-2", AtStop, LatestEntryPrice - (0.05 * 5));
}
즐거운 하루되세요
> yanartas 님이 쓴 글입니다.
> 제목 : 질문입니다,
> 이런 질문을 드렸고 답변을 받았습니다.
//--------------------
안녕하세요
예스스탁입니다.
현재 수식의 문제는
하나의 봉에서 반대방향 진입과 추가진입이 동시 셋팅되어
다음봉에서 신호가 같이 발생하는 부분에 있습니다.
매수추가 진입이 반대방향 조건과 겹치지 않게 조건을 추가해 주셔야 합니다.
if marketposition(0) <= 0 and crossup(c, ma(c,5)) then
{
buy("b", atmarket, def, 1);
}
if marketposition(0) >= 0 and crossdown(c, ma(c,10)) then
{
sell("s", atmarket, def, 1);
}
If MarketPosition(0) == 1 && CurrentContracts == 1 and crossdown(c, ma(c,10)) == false Then
{
Buy("+2", AtStop, LatestEntryPrice + (0.05 * 5));
}
If MarketPosition(0) == -1 && CurrentContracts == 1 and crossup(c, ma(c,5)) == false Then
{
Sell("-2", AtStop, LatestEntryPrice - (0.05 * 5));
}
즐거운 하루되세요
> yanartas 님이 쓴 글입니다.
> 제목 : 질문입니다.
> 선물에서 시스템을 작성해서 운영하고자 합니다.
피라미딩에 관련한 질문입니다.
일단 1계약으로 매수, 매도하는 시스템을 작성하였습니다.
신호는 AtMarket으로 작성하였습니다.
피라미딩은 매수(매도)로 진입하였을 때 진입가격대비 5틱 상승(하락)했을 때
추가로 1계약을 진입하도록 하였습니다.
신호는 AtStop으로 작성하였습니다.
예를들면 이렇습니다.
if marketposition(0) <= 0 and crossup(c, ma(5)) then
{ buy('b", atmarket, def, 1);}
if marketposition(0) >= 0 and crossdown(c, ma(10)) then
{ sell("s", atmarket, def, 1); }
If MarketPosition(0) == 1 && CurrentContracts == 1 Then
{ Buy("+2", AtStop, LatestEntryPrice + (0.05 * 5)); }
If MarketPosition(0) == -1 && CurrentContracts == 1 Then
{ Sell("-2", AtStop, LatestEntryPrice - (0.05 * 5));}
그런데 한가지 문제점이 생겼는데,
예를들어 매도로 진입한 후에 매도로 진입한 봉에서 가격이 상승하더니
매수 피라미딩신호가 발생하여 매수로 포지션이 바뀌어 버리는 현상이 발생합니다.
아마도 제 생각으로는 AtStop으로 피라미딩을 진입하게 만들어서 이런 현상이 발생한 듯 합니다.
원래 제 의도는 초기진입이 매수("b")라면 그 후에는 매도("s") 혹은 매수피라미딩("+2") 신호만 발생시키고 싶고, 초기진입이 매도("s")라면 그 후에는 매수("b") 혹은 매도피라미딩("-2") 신호만 발생시키고 싶습니다.
즉, 매수 진입 후 매도피라미딩 진입이나, 매도 진입 후 매수피라미딩 신호는 나오지 않게 하고 싶습니다.
왜 이런 현상이 발생하는지 그 이유와
이를 방지할 수 있는 방법을 간단한 예시로 부탁드리겠습니다.
감사합니다.
//----------------------
질문을 드립니다.
답변을 주신 방법 이외에,
매수("b") 이후에 매도피라미딩("-2")가 나가지 않고,
매도("s") 이후에 매수피라미딩("+2")가 나가지 않게 하는 방법이 없을까요?
이런 질문을 드리는 이유가 현재 제가 작성한 시스템이,
"b"와 "s"가 여러가지 조건으로 코딩되어 있어서 답변주신 내용으로 간단히 코딩이 되지않습니다.
따라서, 매수("b") 포지션이 나간 후에는 매도("s") 포지션신호 혹은 매수피라미딩신호("+2")만 나가고,
매도("s") 포지션이 나간 후에는 매수("b") 포지션신호 혹은 매도피라미딩신호("-2")만 나가게 하고 싶습니다.
즉, 매수 포지션 후 매도피라미딩 시그널이 발생하지 않고,
매도 포지션 후 매수피라미딩 시그널이 발생하지 않게 하는 방법을 알고싶습니다.
위에서 답변주신 방법과 다른 방법으로 말이죠.
같은 질문일 수 있지만 예시로 부탁드립니다.
꼭 부탁드립니다.
감사합니다.
이전글