커뮤니티
부탁드립니다.
2011-03-18 15:19:37
845
글번호 36699
수고 많으십니다.
초보라서 자동프로그램을 만들어 보는데 애로가 많습니다.
첨부화일을 보시고 정정부탁드립니다.
감사합니다.
- 1. yeslang 110318.docx (0.02 MB)
답변 1
예스스탁 예스스탁 답변
2011-03-18 15:57:43
안녕하세요
예스스탁입니다.
올리신 내용에 대해 정확히 이해를 하지 못했습니다.
이해된 내용으로 수식을 올려드립니다.
기준의 매수와 매도 진입에
var3와 var2가 현재 발생한 봉임을 추가했고
추가진입내용도 추가했습니다.
예스랭귀지에는 1대1 비교만 가능합니다.
A > B > c와 같은 내용은 A > B and B > C와 같이 표현하셔야 합니다.
Setstoptrailing은 최소 수익과 감소폭 2개를 지정하셔야 합니다.
식에서는 문법에 맞지않아 삭제했습니다,
도움말을 참고하셔서 문법에 맞게 추가하시기 바랍니다.
input : gap(30),ttime(1.2), barnum(20), stoploss(40), limitprofit(200), moddletarget(120);
#mh~bml간격, mh~ml 간격배수, 이전봉범위
Var1 = ma(c,5);
Var2 = swinglow(1, var1, 2, 1, barnum); #buy 진입반등조건 ma값
Var3 = swinghigh(1, var1, 2, 1, barnum); #sell 진입반락조건 ma값
Var4 = swinghigh(1, var1, 2, 2, barnum); #구간내 ma고점값
Var5 = swinglow(1, var1, 2, 2, barnum); #구간내 ma저점값
#buy1 진입조건-sell 진입청산 후
if MarketPosition != 1 Then{
If var4-var3> gap and var4-var5>gap*ttime and SwingHigh(1, var1, 2, 1, 3) != -1 then
Buy("매수1");
}
if MarketPosition == 1 Then{
if var4 >= 0 and SwingHigh(1, var1, 2, 1, 3) != -1 and SwingHigh(1, var1, 2, 1, 3) > var4 Then
buy("b",OnClose,def,int(CurrentContracts/2));
}
#sell1 진입조건-buy 진입청산 후
If var2-var5>gap and var4-var5>gap*ttime and SwingLowBar(1, var1, 2, 1, 3) != 1 then
Sell("매도1");
if MarketPosition == -1 Then{
if var4 >= 0 and swinglow(1, var1, 2, 1, 3) != -1 and swinglow(1, var1, 2, 1, 3) < var5 Then
Sell("s",OnClose,def,int(CurrentContracts/2));
}
#buy 진입청산
If marketposition==1 then {
If var4>var3 and var3 > entryprice(0) then
Exitlong("매수익절");
If var5>c then
Exitlong("매수손절");
}
#sell 진입청산
If marketposition==-1 then {
If entryprice(0)>var2 and var2 > var5 then
Exitshort("매도익절");
If var4<c then
Exitshort("매도손절");
}
#스탑설정
Setstoploss((pricescale*10)*stoploss, pointstop);
Setstopprofittarget((pricescale*10)*limitprofit, pointstop);
즐거운 하루되세요
> 골드핑거 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 수고 많으십니다.
초보라서 자동프로그램을 만들어 보는데 애로가 많습니다.
첨부화일을 보시고 정정부탁드립니다.
감사합니다.