커뮤니티
이것저것 문의드립니다.
2017-10-10 09:48:22
138
글번호 113248
수식왕 예스스탁님 항상 감사합니다.
1. 상승추세를 만들어 보려고 했는데요. 어떻게 만들어야 할 지 막막합니다. 가령 볼린저밴드 밴드폭 하락추세를 코딩으로 만들어보려고 했는데요. 하락추세라는 걸 어떻게 규정해야할 지 모르겠네요. 우선 '볼린저밴드폭 수치가 감소하고 있다.' '다시 상승하거나 변경되지 않는 봉의 갯수가 다섯개를 넘지 않는다.(다섯봉 정도의 휩쏘만 생긴 후에 다시 하락하고 있다.)' 이런 식으로 생각을 해봤습니다. 이 부분 20이평 상향돌파 하락돌파 전략에 필터를 추가한 코딩으로 좀 부탁드립니다.
2. 혹시 다른 방법도 있을까요? 여러 코딩을 해보신 경험이 있을 것 같아서 다른 부분도 있는 지 조언을 구합니다.
3. 그 가격대(신호가 발생한 가격대)에서 신호가 N회만 발생하도록 필터를 추가하고 싶습니다. 예를 들어서 가격이 20이평을 넘어서 신호가 발생했다면 그 신호가 발생한 가격의 +- n% 이내에서, 신호가 더이상 발생하지 않도록 하고 싶습니다.
가령 200포인트에서 신호가 한번 발생했고 1% +-에서는 신호가 발생하지 않게 했다면 198포인트나 202포인트에서는 신호가 발생하지 않는 식입니다.
4. 특정 시간대(20개봉과 같은 봉의 기간대)에서 신호가 n회만 발생하도록 필터를 추가하고 싶습니다. 예를 들어 1개봉전 포지션이 발생했다면 향후 10개봉에서는 신호가 발생하더라도 진입을 하지 않는다는 식으로 필터를 추가하고 싶습니다.
5. 3혹은 4 필터에 n회 신호가 발생하게라는 것을 추가하는 식으로 코딩을 짜고 싶습니다. 예를 들어 그 가격의 +-1%에서는 신호가 n회 발생한다(3). 포지션이 발생했다면 포지션 발생기준으로 10개봉 이내에서는 포지션이 n회 발생한다(4) 식으로 코딩을 만들고 싶습니다.
6. 시스템트레이딩 설정의 강제청산을 보면 (손절매, 최대수익대비하락, 목표수익, 최소가격변화, 당일청산)이 있는데요. 이 함수명 소개와 간략한 예제 좀 부탁드립니다.
7. 아래수식도 연산자 앞 뒤 두 데이터 형태가 같아야 합니다 라는 오류가 나옵니다. 어떻게 수정해야하는 지 궁금합니다.
input:수렴폭(1.1),len(10),len1(40),len2(0.37),s1(2.7),delay(5);
var:ma1(0),ma2(0),Range(0),cond1(true),cond2(true);
Range = high-low;
Ma1 = ma(Range,len);
MA2 = ma(Range,len1);
var1 = Ma1 < Ma2 and max(ma1,ma2) < min(ma1,ma2)*수렴폭;
var2 = Ma1 > Ma2 and max(ma1,ma2) > min(ma1,ma2)*수렴폭;
if Accumn(iff(var1[1],1,0),5) == 5 and crossup(ma1,ma2) then{
buy();
exitlong();
}
if Accumn(iff(var2[1],1,0),5) == 5 and crossdown(ma1,ma2) then{
sell();
exitshort();
}
답변 1
예스스탁 예스스탁 답변
2017-10-11 11:04:26
안녕하세요
예스스탁입니다.
1
다시 상승하거나 변경되지 않는 봉의 갯수가 다섯개를 넘지 않는다
위부분은 내용판단이 되지 않습니다.
폭증가, 감소는 아래와 같습니다.
Input : Period(20), MultiD(2),P(10);
var : BBup(0),BBdn(0),diff(0);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
diff = BBup-BBdn;#밴드폭
var1 = ma(C,P);
#폭증가, 이평상향돌파
if diff > diff[1] and crossup(c,var1) Then
buy();
#폭감소, 이평하향이탈
if diff < diff[1] and CrossDown(c,var1) Then
sell();
2
상승하락 추세는 개인적인 판단부분은입니다.
해당부분에 대해 저희가 따로 가이드하지는 않습니다.
게시판을 검색하셔서 다른분들이 질문하신 내용과 답변수식
참고하시기 바랍니다.
3
식작성에 시간이 많이 소모되는 내용으로
저희가 답변드리기 어렵습니다.
4
Condition1 = TotalTrades == 0 or
(MarketPosition != 0 and BarsSinceEntry >= 10) and
(MarketPosition == 0 and BarsSinceExit(1) >= 10);
if Condition1 == true and 매수조건 Then
buy();
if Condition1 == true and 매도조건 Then
sell();
5
식작성에 시간이 많이 소모되는 내용으로
저희가 답변드리기 어렵습니다.
6
설정창의 강제청산은 각각 함수로도 제공됩니다.
설정창에서 지정하거나 함수로 지정하거나 선택하는 부분입니다.
랭귀지 도움말의 주문함수부분과 Q&A게시판에서 각 함수로 검색해 보시기 바랍니다.
7
변수에 할당된내용 확인하시고
할당되는 값이 숫자이면 숫자형변수, 논리형이면 논리형변수, 텍스트형이면 텍스트형변수에
할당되게 변경해 주셔야 합니다
input:수렴폭(1.1),len(10),len1(40),len2(0.37),s1(2.7),delay(5);
var:ma1(0),ma2(0),Range(0),cond1(true),cond2(true);
Range = high-low;
Ma1 = ma(Range,len);
MA2 = ma(Range,len1);
cond1 = Ma1 < Ma2 and max(ma1,ma2) < min(ma1,ma2)*수렴폭;
cond2 = Ma1 > Ma2 and max(ma1,ma2) > min(ma1,ma2)*수렴폭;
if Accumn(iff(cond1[1],1,0),5) == 5 and crossup(ma1,ma2) then{
buy();
exitlong();
}
if Accumn(iff(cond1[1],1,0),5) == 5 and crossdown(ma1,ma2) then{
sell();
exitshort();
}
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 이것저것 문의드립니다.
> 수식왕 예스스탁님 항상 감사합니다.
1. 상승추세를 만들어 보려고 했는데요. 어떻게 만들어야 할 지 막막합니다. 가령 볼린저밴드 밴드폭 하락추세를 코딩으로 만들어보려고 했는데요. 하락추세라는 걸 어떻게 규정해야할 지 모르겠네요. 우선 '볼린저밴드폭 수치가 감소하고 있다.' '다시 상승하거나 변경되지 않는 봉의 갯수가 다섯개를 넘지 않는다.(다섯봉 정도의 휩쏘만 생긴 후에 다시 하락하고 있다.)' 이런 식으로 생각을 해봤습니다. 이 부분 20이평 상향돌파 하락돌파 전략에 필터를 추가한 코딩으로 좀 부탁드립니다.
2. 혹시 다른 방법도 있을까요? 여러 코딩을 해보신 경험이 있을 것 같아서 다른 부분도 있는 지 조언을 구합니다.
3. 그 가격대(신호가 발생한 가격대)에서 신호가 N회만 발생하도록 필터를 추가하고 싶습니다. 예를 들어서 가격이 20이평을 넘어서 신호가 발생했다면 그 신호가 발생한 가격의 +- n% 이내에서, 신호가 더이상 발생하지 않도록 하고 싶습니다.
가령 200포인트에서 신호가 한번 발생했고 1% +-에서는 신호가 발생하지 않게 했다면 198포인트나 202포인트에서는 신호가 발생하지 않는 식입니다.
4. 특정 시간대(20개봉과 같은 봉의 기간대)에서 신호가 n회만 발생하도록 필터를 추가하고 싶습니다. 예를 들어 1개봉전 포지션이 발생했다면 향후 10개봉에서는 신호가 발생하더라도 진입을 하지 않는다는 식으로 필터를 추가하고 싶습니다.
5. 3혹은 4 필터에 n회 신호가 발생하게라는 것을 추가하는 식으로 코딩을 짜고 싶습니다. 예를 들어 그 가격의 +-1%에서는 신호가 n회 발생한다(3). 포지션이 발생했다면 포지션 발생기준으로 10개봉 이내에서는 포지션이 n회 발생한다(4) 식으로 코딩을 만들고 싶습니다.
6. 시스템트레이딩 설정의 강제청산을 보면 (손절매, 최대수익대비하락, 목표수익, 최소가격변화, 당일청산)이 있는데요. 이 함수명 소개와 간략한 예제 좀 부탁드립니다.
7. 아래수식도 연산자 앞 뒤 두 데이터 형태가 같아야 합니다 라는 오류가 나옵니다. 어떻게 수정해야하는 지 궁금합니다.
input:수렴폭(1.1),len(10),len1(40),len2(0.37),s1(2.7),delay(5);
var:ma1(0),ma2(0),Range(0),cond1(true),cond2(true);
Range = high-low;
Ma1 = ma(Range,len);
MA2 = ma(Range,len1);
var1 = Ma1 < Ma2 and max(ma1,ma2) < min(ma1,ma2)*수렴폭;
var2 = Ma1 > Ma2 and max(ma1,ma2) > min(ma1,ma2)*수렴폭;
if Accumn(iff(var1[1],1,0),5) == 5 and crossup(ma1,ma2) then{
buy();
exitlong();
}
if Accumn(iff(var2[1],1,0),5) == 5 and crossdown(ma1,ma2) then{
sell();
exitshort();
}