첨부 이미지
그림1
보내주신 수식 적용했는데
매수 신호가 2회가 나옵니다
제가 원하는 것은 bx, sx 청산이후에는
BH, SL 매수 매도가 1회만 나오게 하는 겁니다
수정 부탁드립니다
var : HC(0),HO(0),HI(0);
var : LC(0),LO(0),LI(0);
var : rebuy(0),resell(0);
if MarketPosition == 1 Then
{
if C > O and (HC == 0 or (HC > 0 and C > HC)) Then
{
HC = C;
HO = O;
HI = Index;
}
if Index <= HI+2 and C < O and HC > 0 and O > HC and C < HO Then
ExitLong("bx");
}
Else
{
HC = 0;
HO = 0;
}
if MarketPosition == -1 Then
{
if C < O and (LC == 0 or (LC > 0 and C < LC)) Then
{
LC = C;
LO = O;
LI = Index;
}
if Index <= LI+2 and C > O and LC > 0 and O < LC and C > LO Then
ExitShort("sx");
}
Else
{
LC = 0;
LO = 0;
}
if Bdate != Bdate[1] Then
{
reBuy = 0;
resell = 0;
}
if MarketPosition == 0 and IsExitName("bx",1) == true
and C > O[BarsSinceExit(1)] and rebuy < 1 Then
{
rebuy = rebuy+1;
Buy("BH");
}
if MarketPosition == 0 and IsExitName("sx",1) == true
and C < O[BarsSinceExit(1)] and resell < 1 Then
{
resell = resell+1;
Sell("SL");
}
답변 1
예스스탁
예스스탁 답변
2021-10-05 10:04:43
안녕하세요
예스스탁입니다.
현재 재매수,재매도식이 당일 초기화가 됩니다.
일봉차트이므로 해당 내용이 불필요합니다.
횟수를 카운트하려면 어느시점에 초기화가 되게 해야 하는데
초기화를 할 시점을 해당식 자체에서 지정하기 어렵습니다.
재매수의 진입명은 BH,재매도의 진입명은 SL이므로
매수진입인데 BH이름이 아닌 경우에 매수재진입 횟수 초기화,
매도진입인데 SL이름이 아닌 경우에 매도재진입 횟수 초기화되게 작성해 드립니다.
수식의 일부를 작성해 드리는 경우에 저희가 경우를 모두 마춰드리기 어렵습니다.
식내용을 숙지하시고 기본진입이 있는 식에 맞춰 수정해 보셔야 합니다.
var : HC(0),HO(0),HI(0);
var : LC(0),LO(0),LI(0);
var : rebuy(0),resell(0);
if MarketPosition == 1 Then
{
if C > O and (HC == 0 or (HC > 0 and C > HC)) Then
{
HC = C;
HO = O;
HI = Index;
}
if Index <= HI+2 and C < O and HC > 0 and O > HC and C < HO Then
ExitLong("bx");
}
Else
{
HC = 0;
HO = 0;
}
if MarketPosition == -1 Then
{
if C < O and (LC == 0 or (LC > 0 and C < LC)) Then
{
LC = C;
LO = O;
LI = Index;
}
if Index <= LI+2 and C > O and LC > 0 and O < LC and C > LO Then
ExitShort("sx");
}
Else
{
LC = 0;
LO = 0;
}
if MarketPosition == 1 and MarketPosition != MarketPosition[1] and IsEntryName("BH") == False Then
Rebuy = 0;
if MarketPosition == -1 and MarketPosition != MarketPosition[1] and IsEntryName("SL") == False Then
ReSell = 0;
if MarketPosition == 0 and IsExitName("bx",1) == true
and C > O[BarsSinceExit(1)] and rebuy < 1 Then
{
rebuy = rebuy+1;
Buy("BH");
}
if MarketPosition == 0 and IsExitName("sx",1) == true
and C < O[BarsSinceExit(1)] and resell < 1 Then
{
resell = resell+1;
Sell("SL");
}
즐거운 하루되세요
> knp116 님이 쓴 글입니다.
> 제목 : 수정 부탁드립니다
> 보내주신 수식 적용했는데
매수 신호가 2회가 나옵니다
제가 원하는 것은 bx, sx 청산이후에는
BH, SL 매수 매도가 1회만 나오게 하는 겁니다
수정 부탁드립니다
var : HC(0),HO(0),HI(0);
var : LC(0),LO(0),LI(0);
var : rebuy(0),resell(0);
if MarketPosition == 1 Then
{
if C > O and (HC == 0 or (HC > 0 and C > HC)) Then
{
HC = C;
HO = O;
HI = Index;
}
if Index <= HI+2 and C < O and HC > 0 and O > HC and C < HO Then
ExitLong("bx");
}
Else
{
HC = 0;
HO = 0;
}
if MarketPosition == -1 Then
{
if C < O and (LC == 0 or (LC > 0 and C < LC)) Then
{
LC = C;
LO = O;
LI = Index;
}
if Index <= LI+2 and C > O and LC > 0 and O < LC and C > LO Then
ExitShort("sx");
}
Else
{
LC = 0;
LO = 0;
}
if Bdate != Bdate[1] Then
{
reBuy = 0;
resell = 0;
}
if MarketPosition == 0 and IsExitName("bx",1) == true
and C > O[BarsSinceExit(1)] and rebuy < 1 Then
{
rebuy = rebuy+1;
Buy("BH");
}
if MarketPosition == 0 and IsExitName("sx",1) == true
and C < O[BarsSinceExit(1)] and resell < 1 Then
{
resell = resell+1;
Sell("SL");
}