커뮤니티
재문의 드립니다
2014-10-02 23:43:21
164
글번호 79060
안녕하세요?
답변중 이해가 안되어 재문의 드립니다
*문의사항: 다시한번 구현하고 싶은 식은 10일선을 크로스다운된후 특정한값을 내려간적이 있고 다시 특정구간을 상승면 매수하는 식인데 10일선을 크로스업되면 이조건이 전부 초기화되는 식입니다
초기화 하지 않으면 계속영향을 받아 컴도 늦어지고 뭔가 뒤죽박죽되어 사용불가한것 같읍니다
문의1) 답변내용중 if crossdown(c, ma10) then
Condition1 = false;
이것은 crossdown 이 아니고 crossup 이 아닙니까?
(크로스다운이 맨 처음일어나고 그다음 c<95 이고 최종이 크로업이 되는데
크로스업이 되면 모든것이 초기화 된다는 의미입니다)
문의2)if mp==0 and Condition1 == true and crossup(c,100) then
buy();
→Condition1이 c<95 인데 crossup(c,100)이면 Condition1이 false 가 되어
식이 성립되는게 맞는지요?
문의3) 문의내용중 if index>var1 and index<var2 and countif( c<95, var1)>=1 and mp==0 and crossup(c,100) then buy();
→ var1 이 시작된 이후 c<95 적은것이 1개이상 있을시
"countif( c<95, var1)>=1" 이렇게 적는것이 맞는 것인 지 아니면 var1 대신에 다른것을 적어야하는지 내용을 알려 주십시요
-----------------------------------------------------------
안녕하세요
예스스탁입니다.
var : ma10(0),mp(0);
ma10 = ma(C,10);
mp = MarketPosition;
if crossdown(c, ma10) then
Condition1 = false;
if C < ma10 Then{
if C < 95 Then
Condition1 = true;
if mp==0 and Condition1 == true and crossup(c,100) then
buy();
}
즐거운 하루되세요
> 높이 님이 쓴 글입니다.
> 제목 : 식문의 그립니다
> 안녕하세요?
ma10 은 십일선
if crossdown(c, ma10) then var1=index;
if [index> var1 and ] crossup(c, ma10) then var2=index;
if index>var1 and index<var2 and countif( c<95, var1)>=1 and mp==0 and crossup(c,100) then buy();
(십일선 다운 부터 십일선 업이전까지 c가 95까지 내려간적이 있고 100을 돌파시 매수)
문의 : 위와 같이 작성하니 매수가 발생되지 않는데 무엇이 잘못된는지요?
1)index<var2 를 없애봐도 마찬가지임 또는 index>var1 and index<var1 +200
대체해도 마찬가지임
2) countif( c<95, var1)>=1 여기서 특정한숫자를 대신한 var1 은 가능한가요?
3) [index> var1 and ] 을 적어넣으면 안되는건지요?
* 다시한번 구현하고 싶은 식은 10일선을 크로스다운된후 특정한값을 내려간적이 있고 다시 특정구간을 상승면 매수하는 식인데 10일선을 크로스업되면 이조건이 전부 초기화되는 식입니다
초기화 하지 않으면 계속영향을 받아 컴도 늦어지고 뭔가 뒤죽박죽되어 사용불가한것 같읍니다
답변 1
예스스탁 예스스탁 답변
2014-10-06 15:47:54
안녕하세요
예스스탁입니다.
"10일선을 크로스다운된후 특정한값을 내려간적이 있고 다시 특정구간을 상승면 매수"
문의하신 내용은 종가가 10일선보다 작은구간(데드구간)에서
95이하로 값이 내려갔다가 100을 상향돌파하면 매수하는 내용입니다.
아래식은 위 내용을 옮긴 식입니다.
var : ma10(0),mp(0);
ma10 = ma(C,10);
mp = MarketPosition;
if crossdown(c, ma10) then
Condition1 = false;
if C < ma10 Then{
if C < 95 Then
Condition1 = true;
if mp==0 and Condition1 == true and crossup(c,100) then
buy();
}
1.
Condition1변수는 데드구간(C > ma10)에서 종가가 특정값(95)를 한번이상 내려갔음(C<95)을
저장하기 위한 변수입니다.
그러므로 데드크로스가 발생하면 false로 초기값을 가지고 C < 95조건이 만족하면 true로 변경이 됩니다.
2
Condition1은 데드구간에 95이하로 내려간적이 있는지 파악하는 변수입니다.
95이하로 내려간후 100을 돌파할때 초기화를 하고자 하시면 아래와 같이 추가하시면 됩니다.
var : ma10(0),mp(0);
ma10 = ma(C,10);
mp = MarketPosition;
if crossdown(c, ma10) then
Condition1 = false;
if C < ma10 Then{
if C < 95 Then
Condition1 = true;
if mp==0 and Condition1 == true and crossup(c,100) then {
Condition1 = false;
buy();
}
}
3.
var1는 데드가 발생한 봉의 봉번호일뿐입니다.
현재봉과 데드봉 사이이므로 index-var1이 되어야 합니다.
기존에 작성하신 식에서 내용을 변경하시면 아래와 같이 작성하셔야 합니다.
if crossdown(c, ma10) then
var1=index;
if index > var1 and #데드 이후
c < ma10 and # 종가가 10이평보다 작고(데드구간)
countif( c<95, index-var1)>=1 and #95이하로 내려간적이 있고
mp==0 and #mp는 0이고
crossup(c,100) then #100을 돌파하면 매수
buy();
4.
기존의 답변드린 내용은
countif( c<95, index-var1)>=1
위 내용을 Condition1로 대체한 식일 뿐입니다.
countif는 봉마다 여러번 루프를 돌며 계산하므로
더 시간을 소모하게 됩니다.
즐거운 하루되세요
> 높이 님이 쓴 글입니다.
> 제목 : 재문의 드립니다
> 안녕하세요?
답변중 이해가 안되어 재문의 드립니다
*문의사항: 다시한번 구현하고 싶은 식은 10일선을 크로스다운된후 특정한값을 내려간적이 있고 다시 특정구간을 상승면 매수하는 식인데 10일선을 크로스업되면 이조건이 전부 초기화되는 식입니다
초기화 하지 않으면 계속영향을 받아 컴도 늦어지고 뭔가 뒤죽박죽되어 사용불가한것 같읍니다
문의1) 답변내용중 if crossdown(c, ma10) then
Condition1 = false;
이것은 crossdown 이 아니고 crossup 이 아닙니까?
(크로스다운이 맨 처음일어나고 그다음 c<95 이고 최종이 크로업이 되는데
크로스업이 되면 모든것이 초기화 된다는 의미입니다)
문의2)if mp==0 and Condition1 == true and crossup(c,100) then
buy();
→Condition1이 c<95 인데 crossup(c,100)이면 Condition1이 false 가 되어
식이 성립되는게 맞는지요?
문의3) 문의내용중 if index>var1 and index<var2 and countif( c<95, var1)>=1 and mp==0 and crossup(c,100) then buy();
→ var1 이 시작된 이후 c<95 적은것이 1개이상 있을시
"countif( c<95, var1)>=1" 이렇게 적는것이 맞는 것인 지 아니면 var1 대신에 다른것을 적어야하는지 내용을 알려 주십시요
-----------------------------------------------------------
안녕하세요
예스스탁입니다.
var : ma10(0),mp(0);
ma10 = ma(C,10);
mp = MarketPosition;
if crossdown(c, ma10) then
Condition1 = false;
if C < ma10 Then{
if C < 95 Then
Condition1 = true;
if mp==0 and Condition1 == true and crossup(c,100) then
buy();
}
즐거운 하루되세요
> 높이 님이 쓴 글입니다.
> 제목 : 식문의 그립니다
> 안녕하세요?
ma10 은 십일선
if crossdown(c, ma10) then var1=index;
if [index> var1 and ] crossup(c, ma10) then var2=index;
if index>var1 and index<var2 and countif( c<95, var1)>=1 and mp==0 and crossup(c,100) then buy();
(십일선 다운 부터 십일선 업이전까지 c가 95까지 내려간적이 있고 100을 돌파시 매수)
문의 : 위와 같이 작성하니 매수가 발생되지 않는데 무엇이 잘못된는지요?
1)index<var2 를 없애봐도 마찬가지임 또는 index>var1 and index<var1 +200
대체해도 마찬가지임
2) countif( c<95, var1)>=1 여기서 특정한숫자를 대신한 var1 은 가능한가요?
3) [index> var1 and ] 을 적어넣으면 안되는건지요?
* 다시한번 구현하고 싶은 식은 10일선을 크로스다운된후 특정한값을 내려간적이 있고 다시 특정구간을 상승면 매수하는 식인데 10일선을 크로스업되면 이조건이 전부 초기화되는 식입니다
초기화 하지 않으면 계속영향을 받아 컴도 늦어지고 뭔가 뒤죽박죽되어 사용불가한것 같읍니다