예스스탁
예스스탁 답변
2019-11-07 15:47:05
안녕하세요
예스스탁입니다.
1
3번째의 기준이 모호합니다.
2개의 값의 크로스는 서로 반복적으로 발생하므로
차트 초기에 3번이상 발생하면 이후에는 항상 이전에 2개 이상의 크로스가 있기에
3번째가 만족하게 됩니다.
무포지션에서는 청산이후 3번째
포지션 진행중에는 진입이후 3번째로 작성했습니다.
차트 초기에는 먼저 발생한 쪽으로 진입합니다.
var : TL1(0),TL2(0),tx1(0),tx2(0);
VAR1 = MA(C,2) ;
VAR2 = MA(C,5) ;
if crossup(var1,var2) then
{
if (MarketPosition == 0 and ExitPrice(1)==0 and countif(crossup(var1,var2),Index) == 3) or
(MarketPosition == 0 and countif(crossup(var1,var2),BarsSinceExit(1)) == 3) or
(MarketPosition == -1 and CountIF(crossup(var1,var2),BarsSinceEntry) == 3) Then
buy();
}
if CrossDown(var1,var2) then
{
if (MarketPosition == 0 and ExitPrice(1)==0 and countif(CrossDown(var1,var2),Index) == 3) or
(MarketPosition == 0 and countif(CrossDown(var1,var2),BarsSinceExit(1)) == 3) or
(MarketPosition == 1 and CountIF(CrossDown(var1,var2),BarsSinceEntry) == 3) Then
sell();
}
2
var : TL(0),TX(0),TL1(0),TL2(0),TX1(0),TX2(0);
if crossup(c,ma(c,60)) Then
buy();
if CrossDown(c,ma(c,60)) Then
sell();
if MarketPosition != 0 Then
{
if MarketPosition != MarketPosition[1] Then
{
TL = TL_New(sdate[1],stime[1],EntryPrice,sdate,stime,EntryPrice);
tx = Text_New(sdate,stime,EntryPrice,NumToStr(PositionProfit(0),2));
if MarketPosition == 1 then
{
TL1 = TL_New(sdate[1],stime[1],highest(H,BarsSinceEntry),sdate,stime,highest(H,BarsSinceEntry));
tx1 = Text_New(sdate,stime,highest(H,BarsSinceEntry),NumToStr(highest(H,BarsSinceEntry)-EntryPrice,2));
TL2 = TL_New(sdate[1],stime[1],Lowest(L,BarsSinceEntry),sdate,stime,Lowest(L,BarsSinceEntry));
tx2 = Text_New(sdate,stime,Lowest(L,BarsSinceEntry),NumToStr(Lowest(L,BarsSinceEntry)-EntryPrice,2));
TL_SetColor(TL1,RED);
text_SetColor(Tx1,RED);
TL_SetColor(TL2,BLUE);
text_SetColor(Tx2,BLUE);
}
if MarketPosition == -1 then
{
TL1 = TL_New(sdate[1],stime[1],Lowest(L,BarsSinceEntry),sdate,stime,Lowest(L,BarsSinceEntry));
tx1 = Text_New(sdate,stime,Lowest(L,BarsSinceEntry),NumToStr(EntryPrice-lowest(L,BarsSinceEntry),2));
TL2 = TL_New(sdate[1],stime[1],highest(H,BarsSinceEntry),sdate,stime,highest(H,BarsSinceEntry));
tx2 = Text_New(sdate,stime,highest(H,BarsSinceEntry),NumToStr(EntryPrice-highest(H,BarsSinceEntry),2));
TL_SetColor(TL1,RED);
text_SetColor(Tx1,RED);
TL_SetColor(TL2,BLUE);
text_SetColor(Tx2,BLUE);
}
}
Else
{
TL_SetEnd(TL,sdate,stime,EntryPrice);
Text_SetString(tx,NumToStr(PositionProfit(0),2));
Text_SetLocation(tx,sdate,stime,EntryPrice);
if MarketPosition == 1 then
{
TL_SetBegin(TL1,EntryDate,EntryTime,highest(H,BarsSinceEntry));
TL_SetEnd(TL1,sDate,sTime,highest(H,BarsSinceEntry));
Text_SetLocation(TX1,sdate,stime,highest(H,BarsSinceEntry));
Text_SetString(TX1,NumToStr(Highest(L,BarsSinceEntry)-EntryPrice,2));
TL_SetBegin(TL2,EntryDate,EntryTime,Lowest(L,BarsSinceEntry));
TL_SetEnd(TL2,sDate,sTime,Lowest(L,BarsSinceEntry));
Text_SetLocation(TX2,sdate,stime,Lowest(L,BarsSinceEntry));
Text_SetString(TX2,NumToStr(Lowest(L,BarsSinceEntry)-EntryPrice,2));
}
if MarketPosition == -1 then
{
TL_SetBegin(TL1,EntryDate,EntryTime,Lowest(L,BarsSinceEntry));
TL_SetEnd(TL1,sDate,sTime,Lowest(L,BarsSinceEntry));
Text_SetLocation(TX1,sdate,stime,Lowest(L,BarsSinceEntry));
Text_SetString(TX1,NumToStr(EntryPrice-Lowest(L,BarsSinceEntry),2));
TL_SetBegin(TL2,EntryDate,EntryTime,highest(H,BarsSinceEntry));
TL_SetEnd(TL2,sDate,sTime,highest(H,BarsSinceEntry));
Text_SetLocation(TX2,sdate,stime,highest(H,BarsSinceEntry));
Text_SetString(TX2,NumToStr(EntryPrice-highest(H,BarsSinceEntry),2));
}
}
TL_SetSize(TL,1);
if PositionProfit(0) > 0 Then
{
TL_SetColor(TL,RED);
text_SetColor(Tx,RED);
}
else if PositionProfit(0) < 0 Then
{
TL_SetColor(TL,BLUE);
text_SetColor(Tx,BLUE);
}
else
{
TL_SetColor(TL,BLACK);
text_SetColor(Tx,BLACK);
}
}
즐거운 하루되세요
> 요타 님이 쓴 글입니다.
> 제목 : 수식 요청 드립니다.
> * 전일 데이타 확인 해보니 데이타 차이가 있어 안되었습니다.
* 요청 사항1 : 아래 수식에서 매매로직 요청 좀 드립니다.
무포지션 상태에서
매수 : VAR1 이 VAR2 를 3번째 상향돌파 하면 매수
매도 : VAR1 이 VAR2 를 3번째 하향돌파 하면 매도 입니다.
→수시로 반복되도 괺찮습니다.
var : TL1(0),TL2(0),tx1(0),tx2(0);
VAR1 = MA(C,2) ;
VAR2 = MA(C,5) ;
Plot1(VAR1,"1",RED,DEF,1) ;
Plot2(VAR2,"1",BLUE,DEF,1) ;
* 요청 사항2 : 아래 수식 에서 최대수익, 최대손실 표현좀 부탁 드립니다.
var : TL(0),TX(0);
if MarketPosition != 0 Then
{
if MarketPosition != MarketPosition[1] Then
{
TL = TL_New(sdate[1],stime[1],EntryPrice,sdate,stime,EntryPrice);
tx = Text_New(sdate,stime,EntryPrice,NumToStr(PositionProfit(0),2));
}
Else
{
TL_SetEnd(TL,sdate,stime,EntryPrice);
Text_SetString(tx,NumToStr(PositionProfit(0),2));
Text_SetLocation(tx,sdate,stime,EntryPrice);
}
TL_SetSize(TL,1);
if PositionProfit(0) > 0 Then
{
TL_SetColor(TL,RED);
text_SetColor(Tx,RED);
}
else if PositionProfit(0) < 0 Then
{
TL_SetColor(TL,BLUE);
text_SetColor(Tx,BLUE);
}
else
{
TL_SetColor(TL,BLACK);
text_SetColor(Tx,BLACK);
}
}
* 매번 많은 도움에 고맙습니다.