커뮤니티
수정부탁드립니다
2017-06-29 11:17:50
96
글번호 110810
Params: Period(20), Period1(5), Period2(10), Period3(34), Period4(50);
Params: Exit_L(15), Exit_PT(35);
Params: Contracts_N(3);
Vars : SP(0), TickSize(0), lastEntry(0);
SP = SignalPosition;
TickSize = OneTick * PriceScale;
v1 = Average(C,Period1);
v2 = Average(C,Period2);
v3 = Average(C,Period3);
v4 = Average(C,Period4);
v99 = Average(C,Period);
v88 = v2 - (3 * TickSize);
// 매수진입조건
Cond1 = (CrossUp(v1,v3) Or v3 < C) And 3500 < V;
Cond11 = ((CrossUp(v1,v2) Or (v88 < H And H < v88) ) And 1000 < V);
If Cond1 Then lastEntry = 1
Else If Cond11 Then lastEntry = 11;
Cond2 = CrossDown(v1,v2) Or C < v2;
// 매도진입조건
Cond3 = ((CrossDown(v1,v3) Or C < v3) And 3500 < V);
Cond33 = ((CrossDown(v1,v2) Or (v88 < L And L < v88)) And 1000 < V);
If Cond3 Then lastEntry = 3
Else If Cond33 Then lastEntry = 33;
Cond4 = CrossUp(v1,v2) Or v2 < C;
Cond5 = 12000 < AccumN(V,3);
If Cond1 Or Cond11 Then Buy("매수진입",def,def,Contracts_N);
If Cond3 Or Cond33 Then Sell("매도진입",def,def,Contracts_N);
If Cond5 Then SetStopProfittarget(Exit_PT * TickSize * CurrentContracts, PointStop);
If lastEntry = 11 Or lastEntry = 33 Then
Begin
SetProfitTarget(15 * TickSize, PointStop);
If SP = 1 Then ExitLong("R매수청산", Atlimit, v2 - 5 * TickSize,def,Contracts_N);
If SP = -1 Then ExitShort("R매도청산", Atlimit, v2 + 5 * TickSize,def,Contracts_N);
End
Else
Begin
If Cond2 Then ExitLong("매수청산",def,def,def,Contracts_N);
If Cond4 Then ExitShort("매도청산",def,def,def,Contracts_N);
End;
SetStopLoss(Exit_L * TickSize * currentContracts, PointStop);
위 수식을 예스랭귀지에 맞게 수정부탁드립니다
시그널메이커에서 작성된수식입니다
답변 1
예스스탁 예스스탁 답변
2017-06-29 13:13:00
안녕하세요
예스스탁입니다.
input: Period(20), Period1(5), Period2(10), Period3(34), Period4(50);
input: Exit_L(15), Exit_PT(35);
input: Contracts_N(3);
Vars : lastEntry(0);
Var : SP(0), v1(0),v2(0),v3(0),v4(0),v99(0),v88(0);
var : cond1(false),cond2(false),cond3(false),cond4(false),cond5(false),cond88(false),cond98(false),cond99(false);
var : cond11(false),cond33(false);
SP = MarketPosition;
v1 = ma(C,Period1);
v2 = ma(C,Period2);
v3 = ma(C,Period3);
v4 = ma(C,Period4);
v99 = ma(C,Period);
v88 = v2 - (3 * PriceScale);
// 매수진입조건
Cond1 = (CrossUp(v1,v3) Or v3 < C) And 3500 < V;
Cond11 = ((CrossUp(v1,v2) Or (v88 < H And H < v88) ) And 1000 < V);
If Cond1 Then lastEntry = 1;
Else If Cond11 Then lastEntry = 11;
Cond2 = CrossDown(v1,v2) Or C < v2;
// 매도진입조건
Cond3 = ((CrossDown(v1,v3) Or C < v3) And 3500 < V);
Cond33 = ((CrossDown(v1,v2) Or (v88 < L And L < v88)) And 1000 < V);
If Cond3 Then lastEntry = 3;
Else If Cond33 Then lastEntry = 33;
Cond4 = CrossUp(v1,v2) Or v2 < C;
Cond5 = 12000 < AccumN(V,3);
If Cond1 Or Cond11 Then Buy("매수진입",def,def,Contracts_N);
If Cond3 Or Cond33 Then Sell("매도진입",def,def,Contracts_N);
If MarketPosition == 1 and Cond5 Then
exitlong("bp1",atlimit,entryprice+Exit_PT * PriceScale);
If MarketPosition == -1 and Cond5 Then
ExitShort("sp1",atlimit,entryprice-Exit_PT * PriceScale);
If lastEntry == 11 Or lastEntry == 33 Then Begin
If SP == 1 Then{
ExitLong("R매수청산", Atlimit, v2 - 5 * PriceScale);
ExitLong("bp",atlimit,EntryPrice+PriceScale*15);
}
If SP == -1 Then{
ExitShort("R매도청산", Atlimit, v2 + 5 * PriceScale);
ExitShort("sp",atlimit,EntryPrice-PriceScale*15);
}
End
Else
Begin
If Cond2 Then ExitLong("매수청산");
If Cond4 Then ExitShort("매도청산");
End;
SetStopLoss(Exit_L * PriceScale, PointStop);
즐거운 하루되세요
> 빙글이 님이 쓴 글입니다.
> 제목 : 수정부탁드립니다
> Params: Period(20), Period1(5), Period2(10), Period3(34), Period4(50);
Params: Exit_L(15), Exit_PT(35);
Params: Contracts_N(3);
Vars : SP(0), TickSize(0), lastEntry(0);
SP = SignalPosition;
TickSize = OneTick * PriceScale;
v1 = Average(C,Period1);
v2 = Average(C,Period2);
v3 = Average(C,Period3);
v4 = Average(C,Period4);
v99 = Average(C,Period);
v88 = v2 - (3 * TickSize);
// 매수진입조건
Cond1 = (CrossUp(v1,v3) Or v3 < C) And 3500 < V;
Cond11 = ((CrossUp(v1,v2) Or (v88 < H And H < v88) ) And 1000 < V);
If Cond1 Then lastEntry = 1
Else If Cond11 Then lastEntry = 11;
Cond2 = CrossDown(v1,v2) Or C < v2;
// 매도진입조건
Cond3 = ((CrossDown(v1,v3) Or C < v3) And 3500 < V);
Cond33 = ((CrossDown(v1,v2) Or (v88 < L And L < v88)) And 1000 < V);
If Cond3 Then lastEntry = 3
Else If Cond33 Then lastEntry = 33;
Cond4 = CrossUp(v1,v2) Or v2 < C;
Cond5 = 12000 < AccumN(V,3);
If Cond1 Or Cond11 Then Buy("매수진입",def,def,Contracts_N);
If Cond3 Or Cond33 Then Sell("매도진입",def,def,Contracts_N);
If Cond5 Then SetStopProfittarget(Exit_PT * TickSize * CurrentContracts, PointStop);
If lastEntry = 11 Or lastEntry = 33 Then
Begin
SetProfitTarget(15 * TickSize, PointStop);
If SP = 1 Then ExitLong("R매수청산", Atlimit, v2 - 5 * TickSize,def,Contracts_N);
If SP = -1 Then ExitShort("R매도청산", Atlimit, v2 + 5 * TickSize,def,Contracts_N);
End
Else
Begin
If Cond2 Then ExitLong("매수청산",def,def,def,Contracts_N);
If Cond4 Then ExitShort("매도청산",def,def,def,Contracts_N);
End;
SetStopLoss(Exit_L * TickSize * currentContracts, PointStop);
위 수식을 예스랭귀지에 맞게 수정부탁드립니다
시그널메이커에서 작성된수식입니다