커뮤니티
수식 질문드립니다
2013-03-18 03:48:43
226
글번호 60828
if MarketPosition == 1 and IsEntryName("하락돌파",1) == true and 중기추세 == 하락 then {
if crossdown(c,ma(c,60)) Then
{
exitlong("60이평데드");
}
}
if MarketPosition == 1 and IsEntryName("하락돌파",1) == true then {
if crossdown(c,lowest(l,50)) Then
{
exitlong("최저가이탈");
}
}
var1 = lowest(l,50);
if MarketPosition == 1 and IsEntryName("하락돌파",1) == true then {
if crossdown(c,var1[1]) Then
{
exitlong("최저가이탈");
}
}
위 두 청산식에서...
첫번째 청산은 작동을 하는데 두번째 청산식은 작동을 안하네요...
그리고 세번쩨 식은 작동은 하는데 진입식 이름이 다른데도 작동하는 경우가있네요...
1. 왜그런건지요...
2. 한 시스템에 두가지 이상의 전략을 합성이 아닌 따로 넣을때는...
식 끝에 end 하고 몇줄 띄어서 다시 시작하면 되는지요...
3. 매도후 재진입시에 5봉이후 20봉이내로 제한하려하면 어떻게 표현하는지요...
4. 예를들어 60선 아래서 진입한후에 상승하여 주가가 60선을 돌파하고 5봉이내
데드 크로스 하면 매도 (일봉기준) 를 어떻게 표현하는지요...
언제나 감사합니다...
수고하세요~ ^^
답변 1
예스스탁 예스스탁 답변
2013-03-18 14:18:31
안녕하세요
예스스탁입니다.
수정한 식입니다.
if MarketPosition == 1 and IsEntryName("하락돌파",0) == true then {
if crossdown(c,lowest(l,50)[1]) Then
{
exitlong("최저가이탈");
}
}
1.
crossdown(c,lowest(l,50))
위 조건을 성립이 될수 없는 조건입니다.
하나의 봉에서 종가가 저가보다 작은 봉이 없듯이
현재봉 포한 50개봉동안 최저가보다 종가가 작을수 없어
신호가 발생하지 않습니다.
아래와 값이 현재봉 기준이 아닌 1개봉전 기준의 50개봉 최저가를
종가가 하향이탈 하는 내용으로 작성하셔야 합니다.
crossdown(c,lowest(l,50)[1])
2.
IsEntryName("하락돌파",1) 는 현재 진입의 명칭이 아닙니다.
IsEntryName("하락돌파",1) 은 직전거래의 진입명칭입니다.
현재 진입의 진입명칭은 매개변수가 0입니다.
IsEntryName("하락돌파",0) --> 현재 진입의 진입명칭
IsEntryName("하락돌파",1) --> 청산완료된 거래중 현재에서 가장 가까운 거래의 진입명칭
IsEntryName("하락돌파",2) --> 청산완료된 거래중 현재에서 두번째 가까운 거래의 진입명칭
IsEntryName("하락돌파",3) --> 청산완료된 거래중 현재에서 세번째 가까운 거래의 진입명칭
참고로 청산과 관련된 함수에서는 0은 사용되지 않습니다.
IsExitName("청산이름",1) --> 청산완료된 거래중 현재에서 가장 가까운 거래의 청산명칭
IsExitName("청산이름",2) --> 청산완료된 거래중 현재에서 두번째 가까운 거래의 청산명칭
IsExitName("청산이름",3) --> 청산완료된 거래중 현재에서 세번째 가까운 거래의 청산명칭
3.
예스랭귀지에 진입의 횟수는 제한이 없습니다.
한줄씩 줄바꿈하시고 작성하시면 됩니다.
if 매수조건1 then{
buy();
}
if 매수조건2 then{
buy();
}
if 매수조건3 then{
buy();
}
if 매수조건4 then{
buy();
}
4.
재진입시에 청산 봉에서 봉수를 제한하고자 하시면
BarsSinceExit(1) 함수를 이용하시면 됩니다.
#청산후 5개봉이후 20개봉이전
if BarsSinceExit(1) >= 5 and BarsSinceExit(1) <= 20 and 재진입조건 then
5.
if MarketPosition == 1 Then{
if crossup(c,ma(c,60)) Then
var1 = index;
if countif(crossup(c,ma(c,60)),BarsSinceEntry) >= 1 and#진입이후 60이평 상향돌파가 한번이상 있음
index <= var1+5 and #상향돌파하고 5개봉 이내
CrossDown(c,ma(c,60)) then#60이평을 하향이탈하면 매수청산
exitlong();
}
즐거운 하루되세요
> 깽알신랑 님이 쓴 글입니다.
> 제목 : 수식 질문드립니다
> if MarketPosition == 1 and IsEntryName("하락돌파",1) == true and 중기추세 == 하락 then {
if crossdown(c,ma(c,60)) Then
{
exitlong("60이평데드");
}
}
if MarketPosition == 1 and IsEntryName("하락돌파",1) == true then {
if crossdown(c,lowest(l,50)) Then
{
exitlong("최저가이탈");
}
}
var1 = lowest(l,50);
if MarketPosition == 1 and IsEntryName("하락돌파",1) == true then {
if crossdown(c,var1[1]) Then
{
exitlong("최저가이탈");
}
}
위 두 청산식에서...
첫번째 청산은 작동을 하는데 두번째 청산식은 작동을 안하네요...
그리고 세번쩨 식은 작동은 하는데 진입식 이름이 다른데도 작동하는 경우가있네요...
1. 왜그런건지요...
2. 한 시스템에 두가지 이상의 전략을 합성이 아닌 따로 넣을때는...
식 끝에 end 하고 몇줄 띄어서 다시 시작하면 되는지요...
3. 매도후 재진입시에 5봉이후 20봉이내로 제한하려하면 어떻게 표현하는지요...
4. 예를들어 60선 아래서 진입한후에 상승하여 주가가 60선을 돌파하고 5봉이내
데드 크로스 하면 매도 (일봉기준) 를 어떻게 표현하는지요...
언제나 감사합니다...
수고하세요~ ^^