예스스탁
예스스탁 답변
2020-09-17 15:23:58
안녕하세요
예스스탁입니다.
Input : 기준선기간1(20),기준선기간2(60),지수이평기간(5);
input : LossCount(2),손절(200),트레일링스탑(100),당일청산(053000);
var:기준선1(0),기준선2(0),T1(0);
var : 지수이평(0),Lcnt(0);
기준선1 = (Highest(High, 기준선기간1) + Lowest(Low, 기준선기간1)) / 2 ;
기준선2 = (Highest(High, 기준선기간2) + Lowest(Low, 기준선기간2)) / 2 ;
지수이평 = ema(C,지수이평기간);
if Bdate != Bdate[1] Then
{
T1 = sTime;
Lcnt = 0;
}
if TotalTrades > TotalTrades[1] and IsExitName("StopLoss",1) == true Then
Lcnt = Lcnt+1;
IF Lcnt < LossCount and (MarketPosition <= 0 OR (MarketPosition == 1 and MaxEntries < 3)) Then
{
If (기준선1[0] >= 기준선2[0]) and (Crossup(지수이평[0],기준선2[0]) or Crossup(지수이평[0],기준선1[0])) Then
Buy("b");
}
IF Lcnt < LossCount and (MarketPosition >= 0 OR (MarketPosition == -1 and MaxEntries < 3)) Then
{
If (기준선1[0] < 기준선2[0]) and (CrossDown(지수이평[0],기준선2[0]) or CrossDown(지수이평[0],기준선1[0]))Then
Sell("s");
}
if MarketPosition == 1 Then
{
ExitLong("btr",AtStop,Highest(H,BarsSinceEntry)-PriceScale*트레일링스탑);
if CrossDown(지수이평[0],기준선2[0]) or CrossDown(지수이평[0],기준선1[0]) Then
ExitLong("bx");
}
if MarketPosition == -1 Then
{
ExitShort("Str",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*트레일링스탑);
if Crossup(지수이평[0],기준선2[0]) or Crossup(지수이평[0],기준선1[0]) Then
ExitShort("sx");
}
SetStopLoss(PriceScale*손절,PointStop);
if 당일청산 < T1 Then
{
if sDate != sDate[1] Then
SetStopEndofday(당일청산);
if bDate != bDate[1] Then
SetStopEndofday(0);
}
Else
{
SetStopEndofday(당일청산);
}
즐거운 하루되세요
> blueo 님이 쓴 글입니다.
> 제목 : 특정시간 강제 청산
> 안녕하세요 관리자님
우선 늘 감사 드립니다.
문의 드릴것이 해외선물 포지션이 남아있으면
특정시간에 강제 청산 하는 로직을 어떻게 해야되는지 문의 드립니다.
특정 시간은 오전 5시 30분 입니다.
Input : 기준선기간1(20),기준선기간2(60),지수이평기간(5);
input : LossCount(2),손절(200),트레일링스탑(100);
var:기준선1(0),기준선2(0);
var : 지수이평(0),Lcnt(0);
기준선1 = (Highest(High, 기준선기간1) + Lowest(Low, 기준선기간1)) / 2 ;
기준선2 = (Highest(High, 기준선기간2) + Lowest(Low, 기준선기간2)) / 2 ;
지수이평 = ema(C,지수이평기간);
if Bdate != Bdate[1] Then
Lcnt = 0;
if TotalTrades > TotalTrades[1] and IsExitName("StopLoss",1) == true Then
Lcnt = Lcnt+1;
IF Lcnt < LossCount and (MarketPosition <= 0 OR (MarketPosition == 1 and MaxEntries < 3)) Then
{
If (기준선1[0] >= 기준선2[0]) and (Crossup(지수이평[0],기준선2[0]) or Crossup(지수이평[0],기준선1[0])) Then
Buy("b");
}
IF Lcnt < LossCount and (MarketPosition >= 0 OR (MarketPosition == -1 and MaxEntries < 3)) Then
{
If (기준선1[0] < 기준선2[0]) and (CrossDown(지수이평[0],기준선2[0]) or CrossDown(지수이평[0],기준선1[0]))Then
Sell("s");
}
if MarketPosition == 1 Then
{
ExitLong("btr",AtStop,Highest(H,BarsSinceEntry)-PriceScale*트레일링스탑);
if CrossDown(지수이평[0],기준선2[0]) or CrossDown(지수이평[0],기준선1[0]) Then
ExitLong("bx");
}
if MarketPosition == -1 Then
{
ExitShort("Str",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*트레일링스탑);
if Crossup(지수이평[0],기준선2[0]) or Crossup(지수이평[0],기준선1[0]) Then
ExitShort("sx");
}
SetStopLoss(PriceScale*손절,PointStop);