커뮤니티
문의합니다
2017-01-25 09:48:06
117
글번호 106250
input : ntime(300),sig(100),Period1(5),Period2(20),익절틱수(8),손절틱수(8);
var : mav1(0),mav2(0);
var1 = Accum(iff(ma(c-c[1],ntime) > 0,1,-1) * pow((ma(pow(c-c[1],2),ntime)+1),0.5)+
pow((pow(c-c[1],2) +1),0.5) * iff(c>c[1],1,-1));
var2 = ma(var1,sig);
mav1 = ma(c, Period1);
mav2 = ma(c, Period2);
if MarketPosition <= 0 and
(crossup(var1,var2) or var1 > var2 and mav1 > mav1[1]) Then
buy("b",OnClose,def,1);
if MarketPosition == 1 Then{
if var1 > var2 and mav1 > mav1[1] and CurrentContracts < 5 Then
buy("bb",OnClose,def,1);
if mav2 < mav2[1] then{
ExitLong("bx");
}
ExitLong("bp",atlimit,AvgEntryPrice+PriceScale*익절틱수);
ExitLong("bl",AtStop,AvgEntryPrice-PriceScale*손절틱수);
}
if MarketPosition >= 0 and
(CrossDown(var1,var2) or var1 < var2 and mav1 < mav1[1]) Then
sell("s",OnClose,def,1);
if MarketPosition == -1 then{
if var1 < var2 and mav1 < mav1[1] and CurrentContracts < 5 Then
sell("ss",OnClose,def,1);
if mav2 > mav2[1] Then
ExitShort("sx");
ExitShort("sp",atlimit,AvgEntryPrice-PriceScale*익절틱수);
ExitShort("sl",AtStop,AvgEntryPrice+PriceScale*손절틱수);
}
한가지 수식을 넣어주세요
최초 매수진입 후 익절 또는 손절이 발생하였을 경우 1번만 매매하고
최초 매도진입 후 익절 또는 손절이 발생하였을 경우 1번만 매매할 수 있도록 수식 변경하오자 합니다
예)
(crossup(var1,var2) or var1 > var2 and mav1 > mav1[1]) Then에 의거
최초 매수진입 후 익절 또는 손절 발생하면 매매가 중지되고
다음 (CrossDown(var1,var2) or var1 < var2 and mav1 < mav1[1]) Then에 의거
최초 매도진입이 진행될 수 있도록 하는 수식입니다
반대로
(CrossDown(var1,var2) or var1 < var2 and mav1 < mav1[1]) Then에 의거
최초 매도진입 후 익절 또는 손절 발생하면 매매가 중지되고
다음 (crossup(var1,var2) or var1 > var2 and mav1 > mav1[1]) Then에 의거
최초 매수진이 진행 될 수 있도록 하는 수식입니다
두번째 문의사항
익절은 갈색으로 손절은 맑은 녹색으로 표기하여 주세요
감사합니다
답변 1
예스스탁 예스스탁 답변
2017-01-25 11:10:11
안녕하세요
예스스탁입니다.
수식에서 신호의 색상을 설정할수 없습니다.
input : ntime(300),sig(100),Period1(5),Period2(20),익절틱수(8),손절틱수(8);
var : mav1(0),mav2(0),Bxcond(false),Sxcond(false);
var1 = Accum(iff(ma(c-c[1],ntime) > 0,1,-1) * pow((ma(pow(c-c[1],2),ntime)+1),0.5)+
pow((pow(c-c[1],2) +1),0.5) * iff(c>c[1],1,-1));
var2 = ma(var1,sig);
mav1 = ma(c, Period1);
mav2 = ma(c, Period2);
Bxcond = ExitDate(1) == sdate and MarketPosition(1) == 1 and (IsExitName("bl",1) == true or IsExitName("bp",1) == true);
Sxcond = ExitDate(1) == sdate and MarketPosition(1) == -1 and (IsExitName("sl",1) == true or IsExitName("sp",1) == true);
if MarketPosition <= 0 and Bxcond == false and
(crossup(var1,var2) or (var1 > var2 and mav1 > mav1[1])) Then
buy("b",OnClose,def,1);
if MarketPosition == 1 Then{
if var1 > var2 and mav1 > mav1[1] and CurrentContracts < 5 Then
buy("bb",OnClose,def,1);
if mav2 < mav2[1] then{
ExitLong("bx");
}
ExitLong("bp",atlimit,AvgEntryPrice+PriceScale*익절틱수);
ExitLong("bl",AtStop,AvgEntryPrice-PriceScale*손절틱수);
}
if MarketPosition >= 0 and Sxcond == false and
(CrossDown(var1,var2) or (var1 < var2 and mav1 < mav1[1])) Then
sell("s",OnClose,def,1);
if MarketPosition == -1 then{
if var1 < var2 and mav1 < mav1[1] and CurrentContracts < 5 Then
sell("ss",OnClose,def,1);
if mav2 > mav2[1] Then
ExitShort("sx");
ExitShort("sp",atlimit,AvgEntryPrice-PriceScale*익절틱수);
ExitShort("sl",AtStop,AvgEntryPrice+PriceScale*손절틱수);
}
즐거운 하루되세요
> 남산 님이 쓴 글입니다.
> 제목 : 문의합니다
> input : ntime(300),sig(100),Period1(5),Period2(20),익절틱수(8),손절틱수(8);
var : mav1(0),mav2(0);
var1 = Accum(iff(ma(c-c[1],ntime) > 0,1,-1) * pow((ma(pow(c-c[1],2),ntime)+1),0.5)+
pow((pow(c-c[1],2) +1),0.5) * iff(c>c[1],1,-1));
var2 = ma(var1,sig);
mav1 = ma(c, Period1);
mav2 = ma(c, Period2);
if MarketPosition <= 0 and
(crossup(var1,var2) or var1 > var2 and mav1 > mav1[1]) Then
buy("b",OnClose,def,1);
if MarketPosition == 1 Then{
if var1 > var2 and mav1 > mav1[1] and CurrentContracts < 5 Then
buy("bb",OnClose,def,1);
if mav2 < mav2[1] then{
ExitLong("bx");
}
ExitLong("bp",atlimit,AvgEntryPrice+PriceScale*익절틱수);
ExitLong("bl",AtStop,AvgEntryPrice-PriceScale*손절틱수);
}
if MarketPosition >= 0 and
(CrossDown(var1,var2) or var1 < var2 and mav1 < mav1[1]) Then
sell("s",OnClose,def,1);
if MarketPosition == -1 then{
if var1 < var2 and mav1 < mav1[1] and CurrentContracts < 5 Then
sell("ss",OnClose,def,1);
if mav2 > mav2[1] Then
ExitShort("sx");
ExitShort("sp",atlimit,AvgEntryPrice-PriceScale*익절틱수);
ExitShort("sl",AtStop,AvgEntryPrice+PriceScale*손절틱수);
}
한가지 수식을 넣어주세요
최초 매수진입 후 익절 또는 손절이 발생하였을 경우 1번만 매매하고
최초 매도진입 후 익절 또는 손절이 발생하였을 경우 1번만 매매할 수 있도록 수식 변경하오자 합니다
예)
(crossup(var1,var2) or var1 > var2 and mav1 > mav1[1]) Then에 의거
최초 매수진입 후 익절 또는 손절 발생하면 매매가 중지되고
다음 (CrossDown(var1,var2) or var1 < var2 and mav1 < mav1[1]) Then에 의거
최초 매도진입이 진행될 수 있도록 하는 수식입니다
반대로
(CrossDown(var1,var2) or var1 < var2 and mav1 < mav1[1]) Then에 의거
최초 매도진입 후 익절 또는 손절 발생하면 매매가 중지되고
다음 (crossup(var1,var2) or var1 > var2 and mav1 > mav1[1]) Then에 의거
최초 매수진이 진행 될 수 있도록 하는 수식입니다
두번째 문의사항
익절은 갈색으로 손절은 맑은 녹색으로 표기하여 주세요
감사합니다
다음글
이전글