/****************************************************************************** Description: Multi-entry Strategy for Education. Provided By: Lucille 2010/02/09 *******************************************************************************/ /*************************** Declaration **************************************/ Vars : tf(5), firstBar(0), dayIdx(0); Vars : mPos(0), buyCnt(0), sellCnt(0), bseIdx(0), ehh(0), ell(0), ehc(0), elc(0); Arrays: bSetup[10](false), sSetup[10](false), cSetup[10](false); Arrays: trTime[10](false); Arrays: rangeD[10](0); Arrays: r1[2](0), r2[2](0), pp[2](0), s1[2](0), s2[2](0); Vars : stretch(0), vma(0); /*************************** Initialization ***********************************/ if CurrentBar<=0 || (CurrentBar>0 && Date>Date[1]) then { firstBar = CurrentBar; buyCnt = 0; sellCnt = 0; } dayIdx = CurrentBar - firstBar; mPos = MarketPosition(0); if mPos==1 && mPos<>mPos[1] then buyCnt = buyCnt + 1; if mPos==-1 && mPos<>mPos[1] then sellCnt = sellCnt + 1; bseIdx = BarsSinceEntry(0); ehh = Highest(h, bseIdx+1); ell = Lowest(l, bseIdx+1); ehc = Highest(c, bseIdx+1); elc = Lowest(c, bseIdx+1); /*질문 : 아래 for문이 의미하는것?*/ for value1=1 to 10 { rangeD[value1] = DayHigh(value1)-DayLow(value1); } /*질문 : 아래 수식은 피봇 구하는것 같은데 기존에 알고 있는 피봇 수식과 틀린것 같습니다. 수식 설명 부탁 드립니다.*/ pp[1] = (DayHigh(1)+DayLow(1)+DayClose(1)*2)/4; r1[1] = 2*pp[1] - DayLow(1); s1[1] = 2*pp[1] - DayHigh(1); r2[1] = pp[1] + (r1[1] - s1[1]); s2[1] = pp[1] - (r1[1] - s1[1]); if DayOpen(0)>DayClose(1) then pp[2] = (DayHigh(1)+DayClose(1)+2*DayLow(1))/2; else if DayOpen(0)Asks*1.5 && c>r2[1]; sSetup[1] = BidsAsks && DayLowr1[1] && CrossDown(c,r1[1]); # 디마크 : 리버스 불허 stretch = (DayHigh(1)-DayLow(1))/3; bSetup[3] = c>(DayOpen + stretch) && DayOpen>r1[2]; sSetup[3] = c<(DayOpen - stretch) && DayOpens1[2] && DayLow>(DayOpen - stretch) && hr1[2] && cDayLow; # 이평 돌파 bSetup[5] = (DayOpenvma[1]); sSetup[5] = (DayOpen>vma && cAsks*1.5 && c>DayOpen; sSetup[6] = DayOpen>DayClose(1)*1.01 && Bids(EntryPrice+ATR(20)*4) Then ExitLong("7.0.lx3", AtStop, EntryPrice+ATR(20)); } if mPos==-1 && (EntryName != "6.0.le" && EntryName != "6.0.se") then { if c>(elc+ATR(20)*3.5) Then ExitShort("7.0.sx1"); if c>EntryPrice*1.01 Then ExitShort("7.0.sx2"); if elc<(EntryPrice-ATR(20)*4) Then ExitShort("7.0.sx3", AtStop, EntryPrice-ATR(20)); } /*************************** Common trailer ***********************************/ /*아래 수식에 대한 설명 부탁 드립니다. 특히 intPortion(DayClose(1)*1.1/.05+0.00001)*.05)-.05*2) 부분 수식을 이해 못하겠습니다.*/ if mPos==1 then { SetStopProfitTarget( ((intPortion(DayClose(1)*1.1/.05+0.00001)*.05)-.05*2)-EntryPrice,PointStop); } if mPos==-1 then { SetStopProfitTarget( EntryPrice-((DayClose(1)-intPortion(DayClose(1)*0.1/.05)*.05)+.05*2),PointStop); } SetStopEndofday(); /*************************** FIN **********************************************/