예스스탁
예스스탁 답변
2020-09-25 09:30:36
> 김영재 님이 쓴 글입니다.
> 제목 : 문의 드립니다
> 시그널메이커 수식을 기준으로
예스트레이더에서 만들어주신 수식입니다
신호가 뜨는 자리가 다릅니다.(수치가 같을 경우)
어떤게 다른지 알려주세요
시그널메이커 수식
//////////////////////////////////////////////////////////////////////////
// 매수진입 [BuyA : CCI[50,5] CCI가 0값을 상향돌파, BuyB : ADX[60] 상승추세이고 1봉 연속, BuyC : ADX[60] ADX>25, BuyD : ADX[60] ADX>25, BuyE : ADX[60] ADX>11, ]
param : BuyA_CCILeng(50) // CCI 기간
, BuyA_SignalLeng(5) // 시그날 기간
, BuyA_CCILine(0) // CCI 기준값
, BuyA_ChoiceType(0) // CCI 또는 Signal 선택
;
param : BuyB_SLeng(60) // ADX 기간
, BuyB_Trend(1) // 연속 봉 갯수
;
param : BuyC_SLeng(60) // ADX 기간
, BuyC_CompValue(25) // 기준값
;
param : BuyD_SLeng(60) // ADX 기간
, BuyD_CompValue(25) // 기준값
;
param : BuyE_SLeng(60) // ADX 기간
, BuyE_CompValue(11) // 기준값
;
var : BuyA_V(0), BuyA_V1(0), BuyA_V2(0), BuyA_Result(FALSE);
var : BuyB_Price3(0), BuyB_nVal(0), BuyB_SumDay(0), BuyB_Result(FALSE);
var : BuyC_Price3(0), BuyC_Result(FALSE);
var : BuyD_Price3(0), BuyD_Result(FALSE);
var : BuyE_Price3(0), BuyE_Result(FALSE);
BuyA_V1 = CCI2(Close, BuyA_CCILeng);
BuyA_V2 = EMA(BuyA_V1, BuyA_SignalLeng);
If BuyA_ChoiceType = 0 Then // CCI 선택
Begin
BuyA_V = BuyA_V1;
End
Else // Signal 선택
Begin
BuyA_V = BuyA_V2;
End;
BuyA_Result = Crosses_Above(BuyA_V, BuyA_CCILine);
BuyB_Price3 = ADX (BuyB_SLeng);
IF BuyB_Price3 > BuyB_Price3[1] Then
BuyB_nVal = 1
Else
BuyB_nVal = (-1);
BuyB_SumDay = ACCUMN(BuyB_nVal, BuyB_Trend);
BuyB_Result = (BuyB_SumDay = BuyB_Trend);
BuyC_Price3 = ADX (BuyC_SLeng);
BuyC_Result = FALSE;
IF BuyC_Price3 > BuyC_CompValue Then
BuyC_Result = TRUE;
BuyD_Price3 = ADX (BuyD_SLeng);
BuyD_Result = FALSE;
IF BuyD_Price3 > BuyD_CompValue Then
BuyD_Result = TRUE;
BuyE_Price3 = ADX (BuyE_SLeng);
BuyE_Result = FALSE;
IF BuyE_Price3 > BuyE_CompValue Then
BuyE_Result = TRUE;
if ( BuyA_Result And BuyB_Result And !BuyC_Result And !BuyD_Result And BuyE_Result )
Then
Begin
Buy();
End;
//////////////////////////////////////////////////////////////////////////
// 매수청산 [ExitLongA : CCI[53,5] CCI가 하락추세이고 5봉 연속, ]
param : ExitLongA_CCILeng(53) // CCI 기간
, ExitLongA_SignalLeng(5) // 시그날 기간
, ExitLongA_Trend(5) // 최소 추세 연속 봉 갯수
, ExitLongA_ChoiceType(0) // CCI 또는 Signal 선택
;
var : ExitLongA_V(0), ExitLongA_V1(0), ExitLongA_V2(0), ExitLongA_nVal(0), ExitLongA_SumDay(0), ExitLongA_Result(FALSE);
ExitLongA_V1 = CCI2(Close, ExitLongA_CCILeng);
ExitLongA_V2 = EMA(ExitLongA_V1, ExitLongA_SignalLeng);
If ExitLongA_ChoiceType = 0 Then // CCI 선택
Begin
ExitLongA_V = ExitLongA_V1;
End
Else // Signal 선택
Begin
ExitLongA_V = ExitLongA_V2;
End;
IF ExitLongA_V < ExitLongA_V[1] Then
ExitLongA_nVal = 1
Else
ExitLongA_nVal = (-1);
ExitLongA_SumDay = AccumN(ExitLongA_nVal, ExitLongA_Trend);
ExitLongA_Result = (ExitLongA_SumDay = ExitLongA_Trend);
if ( ExitLongA_Result )
Then
Begin
ExitLong();
End;
SetStopEndOfday(152000);
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyStoplossPoint(1);
SetStopPosition; // 포지션 전체
SetStopLoss( MyStoplossPoint );
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyProfitTargetPoint(3);
SetStopPosition; // 포지션 전체
SetProfitTarget( MyProfitTargetPoint );
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyPointTrailingBefore(.65), MyPercentTrailingAfter(.66);
SetStopPosition; // 포지션 전체
SetPercentTrailing(MyPointTrailingBefore, MyPercentTrailingAfter);
SetStopPosition; // 포지션 전체
SetExitOnClose;
예스트레이더 수식
var : CCI1(0),CCI2(0);
var : ADX1(0),ADX2(0),ADX3(0),ADX4(0);
CCI1 = cci(9);
CCI2 = cci(45);
ADX1 = adx(14);
ADX2 = ADX(14);
ADX3 = adx(18);
ADX4 = adx(16);
if sTime >= 90010 and sTime < 151900 and
CrossUp(CCI1,0) and
countif(ADX1 > ADX1[1],2) == 2 and
!(ADX2 > 25) and
!(ADX3 > 30) and
ADX4 > 11 Then
Sell();
if MarketPosition == -1 Then
{
if CountIf(CCI2 < CCI2[1],6) == 6 Then
ExitShort("sx");
if lowest(L,BarsSinceEntry) <= EntryPrice-2.2 Then
ExitShort("str",AtStop,lowest(L,BarsSinceEntry)+(EntryPrice-Lowest(L,BarsSinceEntry))*0.65);
}
SetStopLoss(2.5,PointStop);