예스스탁
예스스탁 답변
2021-07-21 16:13:21
안녕하세요
예스스탁입니다.
1
Var : value2(0);
위 내용은 변수선언입니다. value2는 숫자를 저장하고 초기값은 0이라는 의미입니다.
해당 수식에서는 매봉 값을 저장하기 전에 0으로 초기화를 해주셔야 합니다.
매수쪽을 보시면 상단에 value = 0;이 있어 매봉 초기화가 되고 있습니다.
Var : value(0);
value = 0;
# 매수
If CCI(9) > 0 Then
value = 1;
If MACD(8,18) > 0 Then
value = value+1;
If DIPlus(14) > DIMinus(14) Then
value = value+1;
If StochasticsK(6,3) > StochasticsD(6,3,3) Then
value = value+1;
# 매수/매도청산
if MarketPosition == 0 and value >= 2 Then
{
Buy();
}
var : Value2(0);
Value2 = 0;
# 매도
If CCI(9) < 0 Then
value2 = 1;
If MACD(8,18) < 0 Then
value2 = value2+1;
If DIPlus(14) < DIMinus(14) Then
value2 = value2+1;
If StochasticsK(6,3) < StochasticsD(6,3,3) Then
value2 = value2+1;
if MarketPosition == 0 and value2 >= 2 Then
{
Sell();
}
2
현재 모든 진입이 무포지션에만 진입합니다.
스위칭이 가능하게 하고자 하시면 아래와 같이 MarketPosition 조건을 지정해 주시면 됩니다.
Var : value(0);
value = 0;
# 매수
If CCI(9) > 0 Then
value = 1;
If MACD(8,18) > 0 Then
value = value+1;
If DIPlus(14) > DIMinus(14) Then
value = value+1;
If StochasticsK(6,3) > StochasticsD(6,3,3) Then
value = value+1;
# 매수/매도청산
if MarketPosition <= 0 and value >= 2 Then
{
Buy();
}
var : Value2(0);
Value2 = 0;
# 매도
If CCI(9) < 0 Then
value2 = 1;
If MACD(8,18) < 0 Then
value2 = value2+1;
If DIPlus(14) < DIMinus(14) Then
value2 = value2+1;
If StochasticsK(6,3) < StochasticsD(6,3,3) Then
value2 = value2+1;
if MarketPosition >= 0 and value2 >= 2 Then
{
Sell();
}
즐거운 하루되세요
> 대박성투77 님이 쓴 글입니다.
> 제목 : 수식검토 부탁드립니다.
> 아래 수식검증시 오류는 없습니다.
문제는 직접 돌려보면 매도는 정상적으로 실행되지만 매수의 경우 항상 매수진입과 거의 동시에 매수청산이 실행되어버립니다.
매수부분만 따로 떼어내서 돌려보면 그런 현상이 없습니다.
그리고 매수와 매도 진입시 조건을 만족하면 즉시 진입하는 경우와 조건을 만족하더라도 봉이 완성된 후 진입하는 경우 각각 어떤 수식을 넣어야 하는지도 알려주십시오.
Var : value(0);
value = 0;
# 매수
If CCI(9) > 0 Then
value = 1;
If MACD(8,18) > 0 Then
value = value+1;
If DIPlus(14) > DIMinus(14) Then
value = value+1;
If StochasticsK(6,3) > StochasticsD(6,3,3) Then
value = value+1;
# 매수/매도청산
if MarketPosition == 0 and value >= 2 Then
{
Buy();
}
Var : value2(0);
# 매도
If CCI(9) < 0 Then
value2 = 1;
If MACD(8,18) < 0 Then
value2 = value2+1;
If DIPlus(14) < DIMinus(14) Then
value2 = value2+1;
If StochasticsK(6,3) < StochasticsD(6,3,3) Then
value2 = value2+1;
if MarketPosition == 0 and value2 >= 2 Then
{
Sell();
}
대박성투77
2021-07-21 16:27:24
두번째 질문은 조건을 중간에 만족하더라도 진입을 기다리다 봉이 완성되는 시점, 즉 10분봉이면 13:00, 13:10, 13:20... 에만 진입할수 있게 하는 조건이 궁금한 것입니다.
너무 매매가 자주 이뤄져서 조금이라도 매매횟수를 줄이기 위해 생각해낸 방법입니다.^^
그리고 추가로 특정 시간에 일단 모든 포지션을 청산하고 다시 특정 시간에 자동으로 매매를 시작하는 수식이 있다면 부탁드립니다.
미국시장이 시작할때 너무 변동성이 커서 22:20분에 일단 모든 포지션을 청산한 후 시장이 조금 안정된 23:20분에 자동으로 다시 전략을 실행했으면 합니다.
이게 가능할런지요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식검토 부탁드립니다.
>
안녕하세요
예스스탁입니다.
1
Var : value2(0);
위 내용은 변수선언입니다. value2는 숫자를 저장하고 초기값은 0이라는 의미입니다.
해당 수식에서는 매봉 값을 저장하기 전에 0으로 초기화를 해주셔야 합니다.
매수쪽을 보시면 상단에 value = 0;이 있어 매봉 초기화가 되고 있습니다.
Var : value(0);
value = 0;
# 매수
If CCI(9) > 0 Then
value = 1;
If MACD(8,18) > 0 Then
value = value+1;
If DIPlus(14) > DIMinus(14) Then
value = value+1;
If StochasticsK(6,3) > StochasticsD(6,3,3) Then
value = value+1;
# 매수/매도청산
if MarketPosition == 0 and value >= 2 Then
{
Buy();
}
var : Value2(0);
Value2 = 0;
# 매도
If CCI(9) < 0 Then
value2 = 1;
If MACD(8,18) < 0 Then
value2 = value2+1;
If DIPlus(14) < DIMinus(14) Then
value2 = value2+1;
If StochasticsK(6,3) < StochasticsD(6,3,3) Then
value2 = value2+1;
if MarketPosition == 0 and value2 >= 2 Then
{
Sell();
}
2
현재 모든 진입이 무포지션에만 진입합니다.
스위칭이 가능하게 하고자 하시면 아래와 같이 MarketPosition 조건을 지정해 주시면 됩니다.
Var : value(0);
value = 0;
# 매수
If CCI(9) > 0 Then
value = 1;
If MACD(8,18) > 0 Then
value = value+1;
If DIPlus(14) > DIMinus(14) Then
value = value+1;
If StochasticsK(6,3) > StochasticsD(6,3,3) Then
value = value+1;
# 매수/매도청산
if MarketPosition <= 0 and value >= 2 Then
{
Buy();
}
var : Value2(0);
Value2 = 0;
# 매도
If CCI(9) < 0 Then
value2 = 1;
If MACD(8,18) < 0 Then
value2 = value2+1;
If DIPlus(14) < DIMinus(14) Then
value2 = value2+1;
If StochasticsK(6,3) < StochasticsD(6,3,3) Then
value2 = value2+1;
if MarketPosition >= 0 and value2 >= 2 Then
{
Sell();
}
즐거운 하루되세요
> 대박성투77 님이 쓴 글입니다.
> 제목 : 수식검토 부탁드립니다.
> 아래 수식검증시 오류는 없습니다.
문제는 직접 돌려보면 매도는 정상적으로 실행되지만 매수의 경우 항상 매수진입과 거의 동시에 매수청산이 실행되어버립니다.
매수부분만 따로 떼어내서 돌려보면 그런 현상이 없습니다.
그리고 매수와 매도 진입시 조건을 만족하면 즉시 진입하는 경우와 조건을 만족하더라도 봉이 완성된 후 진입하는 경우 각각 어떤 수식을 넣어야 하는지도 알려주십시오.
Var : value(0);
value = 0;
# 매수
If CCI(9) > 0 Then
value = 1;
If MACD(8,18) > 0 Then
value = value+1;
If DIPlus(14) > DIMinus(14) Then
value = value+1;
If StochasticsK(6,3) > StochasticsD(6,3,3) Then
value = value+1;
# 매수/매도청산
if MarketPosition == 0 and value >= 2 Then
{
Buy();
}
Var : value2(0);
# 매도
If CCI(9) < 0 Then
value2 = 1;
If MACD(8,18) < 0 Then
value2 = value2+1;
If DIPlus(14) < DIMinus(14) Then
value2 = value2+1;
If StochasticsK(6,3) < StochasticsD(6,3,3) Then
value2 = value2+1;
if MarketPosition == 0 and value2 >= 2 Then
{
Sell();
}
예스스탁
예스스탁 답변
2021-07-22 11:01:03
안녕하세요
예스스탁입니다.
1
전략 내용에 따라 봉미완성시에 신호가 발생할 수 있는 내용이 있고
봉완성시로만 구현할 수 있는 내용이 있습니다.
랭귀지에서 if문은 봉완성시에만 조건을 판단합니다.
if문으로만 지정이 가능한 조건으로는 봉미완성시 진입할 방법은 없습니다.
올려주신 수식이나 이평간 골드/데드나 스토케스틱이 어떤 값에 도달하면 신호발생하는 내용은
if문으로만 조건 지정이 가능하므로 봉완성으로만 구현이 됩니다.
봉미완성시에 신호는
봉완성시에 특정값을 지정하고 다음봉 미완성시에 지정한 특정값과 현재가를 비교해서
가격조건이 충족되면 미완성시에 진입을 하게 할수는 있습니다.
현재가와만 비교가 되므로 지정한 특정값이 기본차트종목의 가격축과 비슷한 값이어야 합니다.
랭귀지에 신호타입은 4가지가 있습니다.
onclose,atmarket,atstop,atlimit
onclose와 atmarket은 모두 봉완성시 신호발생합니다.
봉완성은 다음봉시가가 수신될때이고
onclsoe는 완성봉종가에 atmarket은 다음봉시가에 신호를 표시하는 차이가 있습니다.
atstop이나 atlimit은
봉완성시 if조건이 만족하면 가격조건이 셋팅되고
다음봉에서 셋팅된 가격 이상이나 이하의 시세가 발생하면 즉시 신호가 발생합니다.
atstop은
Buy나 exitshort과 같이 매수주문함수에 사용되면 지정한 가격이상의 시세가 발생할때 즉시 신호,
Sell이나 exitLong과 같이 매도주문함수에 사용되면 지정한 가격이하의 시세가 발생할때 즉시 신호가 발생합니다.
atlimit은
Buy나 exitshort과 같이 매수주문함수에 사용되면 지정한 가격이하의 시세가 발생할때 즉시 신호,
Sell이나 exitLong과 같이 매도주문함수에 사용되면 지정한 가격이상의 시세가 발생할때 즉시 신호가 발생합니다.
즉 완성봉기준으로 조건가격이 셋팅이되고 다음봉 미완성시에 완성봉기준셋팅된 가격과 현재가를 비교해 신호를 발생합니다.
아래는 간단한 예시입니다.
#봉완성시 종가가 20이평을 상향돌파하면은 고가+2틱을 셋팅하고
#다음봉에서 셋팅된값 이상의 현재가가 발생하면 즉시 매수진입신호발생
if crossup(c,ma(c,20)then
buy("b",atstop,H+PriceScale*2);
#봉완성시 종가가 20이평을 하향이탈하면은 저가-2틱를 셋팅하고
#다음봉에서 셋팅된값 이상의 현재가가 발생하면 즉시 매도진입신호발생
if crossdown(c,ma(c,20)then
sel("s",atstop,L-PriceScale*2);
2
아래와 같은 구조로 시간을 구분하여 식 구현하시면 됩니다.
input : StartTime1(70000),EndTime1(220000);
input : StartTime2(232000),EndTime2(60000);
var : Tcond(false);
if (sdate != sdate[1] and stime >= StartTime1) or
(sdate == sdate[1] and stime >= StartTime1 and stime[1] < StartTime1) Then
Tcond = true;
if (sdate != sdate[1] and stime >= EndTime1) or
(sdate == sdate[1] and stime >= EndTime1 and stime[1] < EndTime1) Then
{
Tcond = False;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == 1 Then
ExitShort();
}
if (sdate != sdate[1] and stime >= StartTime2) or
(sdate == sdate[1] and stime >= StartTime2 and stime[1] < StartTime2) Then
Tcond = true;
if (sdate != sdate[1] and stime >= EndTime2) or
(sdate == sdate[1] and stime >= EndTime2 and stime[1] < EndTime2) Then
{
Tcond = False;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == 1 Then
ExitShort();
}
if Tcond == true Then
{
진입청산수식
}
즐거운 하루되세요
> 대박성투77 님이 쓴 글입니다.
> 제목 : Re : Re : 수식검토 부탁드립니다.
> 두번째 질문은 조건을 중간에 만족하더라도 진입을 기다리다 봉이 완성되는 시점, 즉 10분봉이면 13:00, 13:10, 13:20... 에만 진입할수 있게 하는 조건이 궁금한 것입니다.
너무 매매가 자주 이뤄져서 조금이라도 매매횟수를 줄이기 위해 생각해낸 방법입니다.^^
그리고 추가로 특정 시간에 일단 모든 포지션을 청산하고 다시 특정 시간에 자동으로 매매를 시작하는 수식이 있다면 부탁드립니다.
미국시장이 시작할때 너무 변동성이 커서 22:20분에 일단 모든 포지션을 청산한 후 시장이 조금 안정된 23:20분에 자동으로 다시 전략을 실행했으면 합니다.
이게 가능할런지요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식검토 부탁드립니다.
>
안녕하세요
예스스탁입니다.
1
Var : value2(0);
위 내용은 변수선언입니다. value2는 숫자를 저장하고 초기값은 0이라는 의미입니다.
해당 수식에서는 매봉 값을 저장하기 전에 0으로 초기화를 해주셔야 합니다.
매수쪽을 보시면 상단에 value = 0;이 있어 매봉 초기화가 되고 있습니다.
Var : value(0);
value = 0;
# 매수
If CCI(9) > 0 Then
value = 1;
If MACD(8,18) > 0 Then
value = value+1;
If DIPlus(14) > DIMinus(14) Then
value = value+1;
If StochasticsK(6,3) > StochasticsD(6,3,3) Then
value = value+1;
# 매수/매도청산
if MarketPosition == 0 and value >= 2 Then
{
Buy();
}
var : Value2(0);
Value2 = 0;
# 매도
If CCI(9) < 0 Then
value2 = 1;
If MACD(8,18) < 0 Then
value2 = value2+1;
If DIPlus(14) < DIMinus(14) Then
value2 = value2+1;
If StochasticsK(6,3) < StochasticsD(6,3,3) Then
value2 = value2+1;
if MarketPosition == 0 and value2 >= 2 Then
{
Sell();
}
2
현재 모든 진입이 무포지션에만 진입합니다.
스위칭이 가능하게 하고자 하시면 아래와 같이 MarketPosition 조건을 지정해 주시면 됩니다.
Var : value(0);
value = 0;
# 매수
If CCI(9) > 0 Then
value = 1;
If MACD(8,18) > 0 Then
value = value+1;
If DIPlus(14) > DIMinus(14) Then
value = value+1;
If StochasticsK(6,3) > StochasticsD(6,3,3) Then
value = value+1;
# 매수/매도청산
if MarketPosition <= 0 and value >= 2 Then
{
Buy();
}
var : Value2(0);
Value2 = 0;
# 매도
If CCI(9) < 0 Then
value2 = 1;
If MACD(8,18) < 0 Then
value2 = value2+1;
If DIPlus(14) < DIMinus(14) Then
value2 = value2+1;
If StochasticsK(6,3) < StochasticsD(6,3,3) Then
value2 = value2+1;
if MarketPosition >= 0 and value2 >= 2 Then
{
Sell();
}
즐거운 하루되세요
> 대박성투77 님이 쓴 글입니다.
> 제목 : 수식검토 부탁드립니다.
> 아래 수식검증시 오류는 없습니다.
문제는 직접 돌려보면 매도는 정상적으로 실행되지만 매수의 경우 항상 매수진입과 거의 동시에 매수청산이 실행되어버립니다.
매수부분만 따로 떼어내서 돌려보면 그런 현상이 없습니다.
그리고 매수와 매도 진입시 조건을 만족하면 즉시 진입하는 경우와 조건을 만족하더라도 봉이 완성된 후 진입하는 경우 각각 어떤 수식을 넣어야 하는지도 알려주십시오.
Var : value(0);
value = 0;
# 매수
If CCI(9) > 0 Then
value = 1;
If MACD(8,18) > 0 Then
value = value+1;
If DIPlus(14) > DIMinus(14) Then
value = value+1;
If StochasticsK(6,3) > StochasticsD(6,3,3) Then
value = value+1;
# 매수/매도청산
if MarketPosition == 0 and value >= 2 Then
{
Buy();
}
Var : value2(0);
# 매도
If CCI(9) < 0 Then
value2 = 1;
If MACD(8,18) < 0 Then
value2 = value2+1;
If DIPlus(14) < DIMinus(14) Then
value2 = value2+1;
If StochasticsK(6,3) < StochasticsD(6,3,3) Then
value2 = value2+1;
if MarketPosition == 0 and value2 >= 2 Then
{
Sell();
}