커뮤니티
문의드립니다.
2019-01-22 22:55:52
142
글번호 125496
아래식 #지정시간 청산# 에서 지정시간(220000~230000) 청산식 수정부탁드립니다.
진입이후 지정시간이 되면 max 수익(20~29 틱) 대비 0.1(10%)이상 하락하면 청산하고 싶습니다.
아래식에서는 지정시간 전에 이미 진입이 있는 경우에는 max 수익을 인식하지 못합니다.
1.2.번이 가능하도록 부탁드립니다. 가능하시면 식 간결화도 부탁드리겠습니다.
1. 해당시간 전에 이미 진입이 있는 경우
- 지정시간에 지정시간 전 Max수익 포함하여 Max수익 대비 0.1(10%) 이상 하락 청산
예)해당시간 전 진입 max수익 21틱, 지정시간에 10틱 수익중, 0.1(10%)이상 하락이므로 바로 청산
예)해당시간 전 진입 max수익 21틱, 지정시간에 25틱 수익중 25틱대비 0.1(10%)하락시 청산
- 진입후 max 수익이 20이 안넘었다면 지정시간에 20틱이상 도달시 Max수익 대비 0.1(10%) 이상 하락 청산
예)해당시간 전 진입 max 수익 19틱, 지정시간에 20틱 수익중 20틱대비 0.1(10%)하락시 청산
2. 해당시간에 신규 진입이 되는경우
- 20틱이상 수익이면 Max수익 대비 0.1(10%) 이상 하락 청산
var : BH(0),SL(0),HE(0),LE(0);
# 청산1 #
if MarketPosition == 1 then {
SetStopTrailing(0,30,PointStop);
SetStopLoss(30,PointStop);
}
if Marketposition == -1 Then {
SetStopTrailing(0,30,PointStop);
SetStopLoss(30,PointStop);
}
# 지정시간 청산 #
if ((sdate != sdate[1] and stime > 220000) or
(sdate == sdate[1] and stime > 220000 and stime[1] <230000)) Then {
if MarketPosition == 1 Then {
BH = highest(H,BarsSinceEntry);
if MaxEntries == 1 Then
HE = LatestEntryPrice(0);
if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then
HE = LatestEntryPrice(0);
if BH >= EntryPrice+PriceScale*20 then{
ExitLong("T4",AtStop,BH-(BH-EntryPrice)*0.1); }
}
if MarketPosition == -1 Then {
SL = Lowest(L,BarsSinceEntry);
if MaxEntries == 1 Then
LE = LatestEntryPrice(0);
if MaxEntries >= 2 and LatestEntryPrice(0) < LE Then
LE = LatestEntryPrice(0);
if SL <= EntryPrice-PriceScale*20 then{
ExitShort(" T4",AtStop,SL+(EntryPrice-SL)*0.1); }
}
}
답변 1
예스스탁 예스스탁 답변
2019-01-24 11:06:30
안녕하세요
예스스탁입니다.
if (stime > 220000 and stime < 230000) Then
{
if MarketPosition == 1 Then
{
BH = highest(H,BarsSinceEntry);
if MaxEntries == 1 Then
HE = LatestEntryPrice(0);
if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then
HE = LatestEntryPrice(0);
if BH >= EntryPrice+PriceScale*20 then
{
ExitLong("T4",AtStop,BH-(BH-EntryPrice)*0.1);
}
}
if MarketPosition == -1 Then
{
SL = Lowest(L,BarsSinceEntry);
if MaxEntries == 1 Then
LE = LatestEntryPrice(0);
if MaxEntries >= 2 and LatestEntryPrice(0) < LE Then
LE = LatestEntryPrice(0);
if SL <= EntryPrice-PriceScale*20 then
{
ExitShort(" T4",AtStop,SL+(EntryPrice-SL)*0.1);
}
}
}
즐거운 하루되세요
> 라떼처럼 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 아래식 #지정시간 청산# 에서 지정시간(220000~230000) 청산식 수정부탁드립니다.
진입이후 지정시간이 되면 max 수익(20~29 틱) 대비 0.1(10%)이상 하락하면 청산하고 싶습니다.
아래식에서는 지정시간 전에 이미 진입이 있는 경우에는 max 수익을 인식하지 못합니다.
1.2.번이 가능하도록 부탁드립니다. 가능하시면 식 간결화도 부탁드리겠습니다.
1. 해당시간 전에 이미 진입이 있는 경우
- 지정시간에 지정시간 전 Max수익 포함하여 Max수익 대비 0.1(10%) 이상 하락 청산
예)해당시간 전 진입 max수익 21틱, 지정시간에 10틱 수익중, 0.1(10%)이상 하락이므로 바로 청산
예)해당시간 전 진입 max수익 21틱, 지정시간에 25틱 수익중 25틱대비 0.1(10%)하락시 청산
- 진입후 max 수익이 20이 안넘었다면 지정시간에 20틱이상 도달시 Max수익 대비 0.1(10%) 이상 하락 청산
예)해당시간 전 진입 max 수익 19틱, 지정시간에 20틱 수익중 20틱대비 0.1(10%)하락시 청산
2. 해당시간에 신규 진입이 되는경우
- 20틱이상 수익이면 Max수익 대비 0.1(10%) 이상 하락 청산
var : BH(0),SL(0),HE(0),LE(0);
# 청산1 #
if MarketPosition == 1 then {
SetStopTrailing(0,30,PointStop);
SetStopLoss(30,PointStop);
}
if Marketposition == -1 Then {
SetStopTrailing(0,30,PointStop);
SetStopLoss(30,PointStop);
}
# 지정시간 청산 #
if ((sdate != sdate[1] and stime > 220000) or
(sdate == sdate[1] and stime > 220000 and stime[1] <230000)) Then {
if MarketPosition == 1 Then {
BH = highest(H,BarsSinceEntry);
if MaxEntries == 1 Then
HE = LatestEntryPrice(0);
if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then
HE = LatestEntryPrice(0);
if BH >= EntryPrice+PriceScale*20 then{
ExitLong("T4",AtStop,BH-(BH-EntryPrice)*0.1); }
}
if MarketPosition == -1 Then {
SL = Lowest(L,BarsSinceEntry);
if MaxEntries == 1 Then
LE = LatestEntryPrice(0);
if MaxEntries >= 2 and LatestEntryPrice(0) < LE Then
LE = LatestEntryPrice(0);
if SL <= EntryPrice-PriceScale*20 then{
ExitShort(" T4",AtStop,SL+(EntryPrice-SL)*0.1); }
}
}