커뮤니티
문의 드립니다.
2014-09-25 07:35:23
162
글번호 78805
항상 수고 많으십니다.
다음 수식은 5-이평이 60-이평보다 크면 매수
5-이평이 60-이평보다 작으면 매도하는 식입니다.
그리고, 0.5 포인트 이상 수익이면 청산, 0.5 포인트 손실이면 손절하는 수식입니다.
그런데, 어떤 경우는 수익 청산을 한 뒤,
같은 봉에서 진입을 하고, 수익이 아닌데도
같은 봉에서 청산을 거듭하는 경우가 많이 발생합니다.
그 원인을 알고 싶습니다.
var5 = ma(c, 5);
var60 = ma(c, 60);
if DayIndex > 0 and stime <= 150000 Then
{
{
if var5 > var60 then
buy("b1");
if MarketPosition == 1 Then
{
if c >= EntryPrice + 0.5 Then
ExitLong("b1청산");
}
if var5 < var60 then
sell("s1");
if MarketPosition == -1 Then
{
if c <= EntryPrice - 0.5 Then
ExitShort("s1청산");
}
}
SetStopLoss(0.5, PointStop);
if stime == 144500 or CrossUp(stime, 144500) Then
{
exitlong();
exitshort();
}
}
답변 1
예스스탁 예스스탁 답변
2014-09-25 11:15:21
안녕하세요
예스스탁입니다.
예스랭귀지는 조건이 만족하면 신호를 모두 찍게 됩니다.
현재 진입조건이 5이평이 60이평보드 크다/작다이므로
청산조건에 만족한 봉이 진입조건도 만족하므로
청산후에 동일방향 진입이 또다시 발생하고
예스랭귀지는 청산과 진입이 동시에 발생하면
청산이 한번더 발동해서 해당 진입을 다시 청산합니다.
해당 부분에 대한 내용은 아래 신호체계내용에서 나)번 참고하시기 바랍니다.
https://www.yesstock.com/YesTrader/YesLanguage/YesLanguage_help/4_6.htm
진입식을 청산과 동일구간에 겹치지 않게 조건을 작성하셔야 합니다.
아래식은 진입을 상향돌파 하향이탈로 수정한 식입니다.
var5 = ma(c, 5);
var60 = ma(c, 60);
if DayIndex > 0 and stime <= 150000 Then
{
{
if MarketPosition<= 0 and crossup(var5,var60) then
buy("b1");
if MarketPosition == 1 Then
{
if c >= EntryPrice + 0.5 Then
ExitLong("b1청산");
}
if MarketPosition >= 0 and crossdown(var5,var60) then
sell("s1");
if MarketPosition == -1 Then
{
if c <= EntryPrice - 0.5 Then
ExitShort("s1청산");
}
}
SetStopLoss(0.5, PointStop);
if stime == 144500 or CrossUp(stime, 144500) Then
{
exitlong();
exitshort();
}
}
즐거운 하루되세요
> 샐리짱 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 항상 수고 많으십니다.
다음 수식은 5-이평이 60-이평보다 크면 매수
5-이평이 60-이평보다 작으면 매도하는 식입니다.
그리고, 0.5 포인트 이상 수익이면 청산, 0.5 포인트 손실이면 손절하는 수식입니다.
그런데, 어떤 경우는 수익 청산을 한 뒤,
같은 봉에서 진입을 하고, 수익이 아닌데도
같은 봉에서 청산을 거듭하는 경우가 많이 발생합니다.
그 원인을 알고 싶습니다.
var5 = ma(c, 5);
var60 = ma(c, 60);
if DayIndex > 0 and stime <= 150000 Then
{
{
if var5 > var60 then
buy("b1");
if MarketPosition == 1 Then
{
if c >= EntryPrice + 0.5 Then
ExitLong("b1청산");
}
if var5 < var60 then
sell("s1");
if MarketPosition == -1 Then
{
if c <= EntryPrice - 0.5 Then
ExitShort("s1청산");
}
}
SetStopLoss(0.5, PointStop);
if stime == 144500 or CrossUp(stime, 144500) Then
{
exitlong();
exitshort();
}
}
다음글
이전글