예스스탁
예스스탁 답변
2024-05-10 13:23:00
안녕하세요
예스스탁입니다.
1
if CrossUp(mav2_1,mav2_2) and
(mav2_1>mav2_2) and
(mav3_1>mav3_2) and
(mav4_1>mav4_2) Then
buy();
ExitShort();
if문에 포함되는 실행문이 2개이상이면 {}로 묶어주셔야 합니다.
위식에서 exitshort은 if문에 포함되는 내용이 아닙니다.
아무 조건없어 별도로 존재하게 됩니다.
if CrossUp(mav2_1,mav2_2) and
(mav2_1>mav2_2) and
(mav3_1>mav3_2) and
(mav4_1>mav4_2) Then
{
buy();
ExitShort();
}
buy와 sell은 진입함수로
반대포지션 상태에서 발생하면 반대포지션 청산을 자동으로 같이 하게 됩니다.
그러므로 스위칭시 별도로 청산함수는 불필요합니다.
2
SetStopTrailing도 매수와 매도포지션 동일하게 셋팅하므로
나누어 하실 필요가 없습니다. 한줄로 처리하시면 됩니다.
매수와 매도포지션에서 지정한 값이 다르면
아래와 같이 처리하셔야 합니다.
if MarketPosition == 1 Then
SetStopTrailing(드랍1*PriceScale,profit1*PriceScale,PointStop,0);
Else if MarketPosition == -1 Then
SetStopTrailing(드랍2*PriceScale,profit1*PriceScale,PointStop,0);
Else
SetStopTrailing(0,0);
3
input : P1(5),P2(10),profit(20), 드랍(5);
input : BBP(20),dv(2);
var : mav1_1(0,data1),mav1_2(0,data1),
mav2_1(0,data2),mav2_2(0,data2),
mav3_1(0,data3),mav3_2(0,data3),
mav4_1(0,data4),mav4_2(0,data4);
var : bbup(0,Data1),bbdn(0,Data1);
mav1_1 = data1(wma(C,P1));
mav1_2 = data1(wma(C,P2));
mav2_1 = data2(wma(C,P1));
mav2_2 = data2(wma(C,P2));
mav3_1 = data3(wma(C,P1));
mav3_2 = data3(wma(C,P2));
mav4_1 = data4(wma(C,P1));
mav4_2 = data4(wma(C,P2));
bbup = Data1(BollBandUp(BBP,dv));
bbdn = Data1(BollBandDown(BBP,dv));
if CrossUp(mav2_1,mav2_2) and
(mav2_1>mav2_2) and
(mav3_1>mav3_2) and
(mav4_1>mav4_2) Then
buy();
if CrossDown(mav2_1,mav2_2) and
(mav2_1<mav2_2) and
(mav3_1<mav3_2) and
(mav4_1<mav4_2) Then
Sell();
#매수진입 후 볼밴 하단 터치하면 청산
if MarketPosition == 1 Then
ExitLong("bx",AtStop,bbdn);
#매도진입 후 볼밴 상단 터치하면 청산
if MarketPosition == -1 Then
ExitShort("sx",AtStop,Bbup);
SetStopTrailing(드랍*PriceScale,profit*PriceScale,PointStop);
즐거운 하루되세요
> ryan1 님이 쓴 글입니다.
> 제목 : 수식 검토 부탁드립니다 ㅠ
> 안녕하세요?
항상 좋은 자료와 시스템 공부하는데 잘 활용하고 있게 해주셔서 감사합니다.
1.나름 시스템식을 만들었는데,롱이 나왔다 바로 숏이 나오네요,,,
뭐가 잘못된것일까요?
2. settrailingstop의 목표가를 볼린져밴드의 상한선,하한선의 값으로 설정하고 싶은데
수식을 어떻게 만들면 될까요?
미리 감사합니다.
화창한 오월의 햇살도 함께 만끽하시기 바랍니다.
input : P1(5),P2(10),profit(20), 드랍(5);
var : mav1_1(0,data1),mav1_2(0,data1),
mav2_1(0,data2),mav2_2(0,data2),
mav3_1(0,data3),mav3_2(0,data3),
mav4_1(0,data4),mav4_2(0,data4);
mav1_1 = data1(wma(C,P1));
mav1_2 = data1(wma(C,P2));
mav2_1 = data2(wma(C,P1));
mav2_2 = data2(wma(C,P2));
mav3_1 = data3(wma(C,P1));
mav3_2 = data3(wma(C,P2));
mav4_1 = data4(wma(C,P1));
mav4_2 = data4(wma(C,P2));
if CrossUp(mav2_1,mav2_2) and
(mav2_1>mav2_2) and
(mav3_1>mav3_2) and
(mav4_1>mav4_2) Then
buy();
ExitShort();
if CrossDown(mav2_1,mav2_2) and
(mav2_1<mav2_2) and
(mav3_1<mav3_2) and
(mav4_1<mav4_2) Then
Sell();
ExitLong();
if MarketPosition == 1 Then
SetStopTrailing(드랍*PriceScale,profit*PriceScale,PointStop,0);
Else
SetStopTrailing(0,0);
if MarketPosition == -1 Then
SetStopTrailingg(드랍*PriceScale,profit*PriceScale,PointStop,0);
Else
SetStopTrailing(0,0);