커뮤니티
추가수정요청
2018-07-02 18:05:55
174
글번호 120235
input : P1(5),P2(20);
var : T(0);
var1 = (NextBarOpen+AccumN(C,P1-1))/P1;
var2 = ma(c,P2);
if var2 > var2[1] Then
T = 1;
if var2 < var2[1] Then
T = -1;
if stime >= 160000 or stime < 020000 then
{
if T == 1 and NextBarOpen < var1 Then
buy("b",AtStop,NextBarOpen+PriceScale*1);
if T == -1 and NextBarOpen > var1 Then
sell("s",AtStop,NextBarOpen-PriceScale*1);
}
상기와 같은 수식을 사용중입니다.
그러나 시스템 운용결과 진입자리는 시가 +1,-1틱인데 그렇게 진입을 안하더라구요..
확인 부탁드릴게요
그리고 손절이나 익절이 나면 다음 진입은 다음 캔들에서 되도록 부탁드릴게요
그리고 진입자리 값 표시도 되나요??
진입조건은 하기와 같습니다.
[매수]
1. 20일선이 우상향
2. 캔들 생성할 때 시가가 5일선 밑에서 시작할 경우, 시가 +1틱에서 진입
[매도]
1. 20일선이 우하향
2. 캔들 생성 때 시가가 5일선 위에서 시작할 경우, 시가 -1틱에서 진입
답변 1
예스스탁 예스스탁 답변
2018-07-03 09:12:56
안녕하세요
예스스탁입니다.
1
현재 수식이 매수는 시가+1틱, 매도는 시가-1틱으로 지정되어 있습니다.
시가+1틱 이상의 시세가 발생하면 매수
buy("b",AtStop,NextBarOpen+PriceScale*1);
시가-1틱 이하의 시세가 발생합면 매도
sell("s",AtStop,NextBarOpen-PriceScale*1);
수식을 변경드릴 부분이 없습니다.
2
위 신호 함수가
봉완성시(다음봉시가수신)될때 가격이 셋팅되고
시세와 비교해 조건만족을 체크하는데
봉미완성시에 조건을 주어 제어가 가능하지 않습니다.
그러므로 하나의 봉에서 손절이나 익절이 되면
이후의 진입을 막을수는 없습니다.
문의하신 내용을 가능하게 하기 위해서는
진입을 항상 신호상 무포지션일 때만 발생하게 해야만 합니다.
아래와 같이 처리하시면 신호는 항상 무포지션일때만 발생하므로
매수진입 이후에 청산전에 매도진입신호로 스위칭이나
매수진입 이후에 청산전에 매수진입신호로 스위칭은 가능하지 않게 됩니다.
input : P1(5),P2(20);
var : T(0);
var1 = (NextBarOpen+AccumN(C,P1-1))/P1;
var2 = ma(c,P2);
if var2 > var2[1] Then
T = 1;
if var2 < var2[1] Then
T = -1;
if stime >= 160000 or stime < 020000 then
{
if T == 1 and NextBarOpen < var1 and MarketPosition == 0 Then
buy("b",AtStop,NextBarOpen+PriceScale*1);
if T == -1 and NextBarOpen > var1 and MarketPosition == 0 Then
sell("s",AtStop,NextBarOpen-PriceScale*1);
}
3
수식에서 텍스트를 출력하는 함수는 봉완성시에만 동작합니다.
시스템이 봉미완성시에 조건에 따라 신호가 발생하는 타입이라
신호 발생 즉시 값표시는 가능하지 않습니다.
신호발생봉 완성할때 표시됩니다.
input : P1(5),P2(20);
var : T(0),tx(0);
var1 = (NextBarOpen+AccumN(C,P1-1))/P1;
var2 = ma(c,P2);
if var2 > var2[1] Then
T = 1;
if var2 < var2[1] Then
T = -1;
if stime >= 160000 or stime < 020000 then
{
if T == 1 and NextBarOpen < var1 and MarketPosition == 0 Then
{
buy("b",AtStop,NextBarOpen+PriceScale*1);
}
if T == -1 and NextBarOpen > var1 and MarketPosition == 0 Then
{
sell("s",AtStop,NextBarOpen-PriceScale*1);
}
}
if MarketPosition == 1 and MarketPosition(0)[1] != 1 Then
{
tx = Text_New(EntryDate(0),EntryTime(0),H[BarsSinceEntry]+PriceScale*1,NumToStr(EntryPrice(0),2));
Text_SetStyle(tx,2,2);
}
if MarketPosition == -1 and MarketPosition(0)[1] != -1 Then
{
tx = Text_New(EntryDate(0),EntryTime(0),L[BarsSinceEntry]-PriceScale*1,NumToStr(EntryPrice(0),2));
Text_SetStyle(tx,2,2);
}
if TotalTrades > TotalTrades[1] Then
{
tx = Text_New(ExitDate(1),ExitTime(1),H+PriceScale*1,NumToStr(ExitPrice(0),2));
Text_SetStyle(tx,2,2);
}
즐거운 하루되세요
> 이인 님이 쓴 글입니다.
> 제목 : 추가수정요청
> input : P1(5),P2(20);
var : T(0);
var1 = (NextBarOpen+AccumN(C,P1-1))/P1;
var2 = ma(c,P2);
if var2 > var2[1] Then
T = 1;
if var2 < var2[1] Then
T = -1;
if stime >= 160000 or stime < 020000 then
{
if T == 1 and NextBarOpen < var1 Then
buy("b",AtStop,NextBarOpen+PriceScale*1);
if T == -1 and NextBarOpen > var1 Then
sell("s",AtStop,NextBarOpen-PriceScale*1);
}
상기와 같은 수식을 사용중입니다.
그러나 시스템 운용결과 진입자리는 시가 +1,-1틱인데 그렇게 진입을 안하더라구요..
확인 부탁드릴게요
그리고 손절이나 익절이 나면 다음 진입은 다음 캔들에서 되도록 부탁드릴게요
그리고 진입자리 값 표시도 되나요??
진입조건은 하기와 같습니다.
[매수]
1. 20일선이 우상향
2. 캔들 생성할 때 시가가 5일선 밑에서 시작할 경우, 시가 +1틱에서 진입
[매도]
1. 20일선이 우하향
2. 캔들 생성 때 시가가 5일선 위에서 시작할 경우, 시가 -1틱에서 진입
다음글
이전글