커뮤니티
로직 수정 부탁드립니다...
2013-08-05 00:51:37
274
글번호 66059
수고하십니다..
Easy랭귀지로 구현된 로직인데요..
예스랭귀지로 수정 부탁드립니다..
Input: FastLen(9), SlowLen(18), ChLen(12), TrailBar(8), Initial(300), ReBars(15), Reentry(100);
Vars: FastMA(0), SlowMA(0), LEntryPrice(0), SEntryPrice(0), LCount(-999), SCount(-999),
ReEntryCount(0), CurrentPosition(0);
FastMA = Average( Close , FastLen );
SlowMA = Average( Close , SlowLen );
{ Order Placement for Long Positions }
If FastMA crosses over SlowMA and barnumber > 1 then Begin
LEntryPrice = Highest( High , TrailBar )[1] * 1.02;
LCount = BarNumber;
End;
commentary( barnumber - lcount , lentryprice );
If MarketPosition <> 1 AND BarNumber < LCount + ChLen then
Buy ("Cross Over Buy") Initial Shares next bar at LEntryPrice Stop;
{ Order Placement for Short Positions }
If FastMA crosses under SlowMA and barnumber > 1 then Begin
SEntryPrice = Lowest( Low , TrailBar )[1] *.98;
SCount = BarNumber;
End;
If MarketPosition <> -1 AND BarNumber < SCount + ChLen then
Sell ("Cross Under Buy") Initial Shares next bar at SEntryPrice Stop;
{ Trailing Stop while in Position }
If MarketPosition = 1 then begin
LCount = -999;
ExitLong ("LongTStop") next bar at Lowest( Low , TrailBar ) Stop;
End;
If MarketPosition = -1 then Begin
SCount = -999;
ExitShort ("ShortTStop") next bar at Highest( High , TrailBar ) stop;
End;
{ Reentry Technique }
CurrentPosition = MarketPosition;
If CurrentPosition = 0 AND CurrentPosition[1] = -1 then
ReEntryCount = 1;
If CurrentPosition = 0 AND CurrentPosition[1] = 1 then
ReEntryCount = 1;
If MarketPosition = 0 AND MarketPosition(1) = 1 AND ReEntryCount < ReBars then Begin
ReEntryCount = ReEntryCount + 1;
Buy ("Long ReEntry") ReEntry Shares next bar at Highest( High , 10 ) Stop;
End;
If MarketPosition = 0 AND MarketPosition(1) = -1 AND ReEntryCount < ReBars then Begin
ReEntryCount = ReEntryCount + 1;
Sell ("Short ReEntry") ReEntry Shares next bar at Lowest( Low , 10 ) Stop;
End;
답변 1
예스스탁 예스스탁 답변
2013-08-05 16:07:31
안녕하세요
예스스탁입니다.
Input: FastLen(9), SlowLen(18), ChLen(12), TrailBar(8), Initial(300), ReBars(15), Reentry(100);
Vars: FastMA(0), SlowMA(0), LEntryPrice(0), SEntryPrice(0), LCount(-999), SCount(-999),
ReEntryCount(0), CurrentPosition(0);
FastMA = ma( Close , FastLen );
SlowMA = ma( Close , SlowLen );
#{ Order Placement for Long Positions }
If CrossUp(FastMA,SlowMA) then Begin
LEntryPrice = Highest( High , TrailBar )[1] * 1.02;
LCount = index;
End;
If MarketPosition <> 1 AND index < LCount + ChLen and LCount > 0 then
Buy("Cross Over Buy",AtStop,LEntryPrice,Initial);
#{ Order Placement for Short Positions }
If CrossDown(FastMA,SlowMA) then Begin
SEntryPrice = Lowest( Low , TrailBar )[1] *.98;
SCount = index;
End;
If MarketPosition <> -1 AND index < SCount + ChLen and SCount > 0 then
Sell("Cross Under Buy",AtStop,SEntryPrice,Initial);
#{ Trailing Stop while in Position }
If MarketPosition == 1 then begin
LCount = -999;
ExitLong("LongTStop",AtStop,Lowest(Low,TrailBar));
End;
If MarketPosition == -1 then Begin
SCount = -999;
ExitShort("ShortTStop",AtStop,Highest(High,TrailBar));
End;
#{ Reentry Technique }
CurrentPosition = MarketPosition;
If MarketPosition == 0 AND MarketPosition == -1 then
ReEntryCount = 1;
If MarketPosition == 0 AND MarketPosition[1] == 1 then
ReEntryCount = 1;
If MarketPosition == 0 AND MarketPosition(1) == 1 AND ReEntryCount < ReBars then Begin
ReEntryCount = ReEntryCount + 1;
Buy("Long ReEntry",AtStop,Highest(High,10),Reentry);
End;
If MarketPosition == 0 AND MarketPosition(1) == -1 AND ReEntryCount < ReBars then Begin
ReEntryCount = ReEntryCount + 1;
Sell("Short ReEntry",AtStop,Lowest(Low,10),Reentry);
End;
즐거운 하루되세요
> 훨훨 님이 쓴 글입니다.
> 제목 : 로직 수정 부탁드립니다...
> 수고하십니다..
Easy랭귀지로 구현된 로직인데요..
예스랭귀지로 수정 부탁드립니다..
Input: FastLen(9), SlowLen(18), ChLen(12), TrailBar(8), Initial(300), ReBars(15), Reentry(100);
Vars: FastMA(0), SlowMA(0), LEntryPrice(0), SEntryPrice(0), LCount(-999), SCount(-999),
ReEntryCount(0), CurrentPosition(0);
FastMA = Average( Close , FastLen );
SlowMA = Average( Close , SlowLen );
{ Order Placement for Long Positions }
If FastMA crosses over SlowMA and barnumber > 1 then Begin
LEntryPrice = Highest( High , TrailBar )[1] * 1.02;
LCount = BarNumber;
End;
commentary( barnumber - lcount , lentryprice );
If MarketPosition <> 1 AND BarNumber < LCount + ChLen then
Buy ("Cross Over Buy") Initial Shares next bar at LEntryPrice Stop;
{ Order Placement for Short Positions }
If FastMA crosses under SlowMA and barnumber > 1 then Begin
SEntryPrice = Lowest( Low , TrailBar )[1] *.98;
SCount = BarNumber;
End;
If MarketPosition <> -1 AND BarNumber < SCount + ChLen then
Sell ("Cross Under Buy") Initial Shares next bar at SEntryPrice Stop;
{ Trailing Stop while in Position }
If MarketPosition = 1 then begin
LCount = -999;
ExitLong ("LongTStop") next bar at Lowest( Low , TrailBar ) Stop;
End;
If MarketPosition = -1 then Begin
SCount = -999;
ExitShort ("ShortTStop") next bar at Highest( High , TrailBar ) stop;
End;
{ Reentry Technique }
CurrentPosition = MarketPosition;
If CurrentPosition = 0 AND CurrentPosition[1] = -1 then
ReEntryCount = 1;
If CurrentPosition = 0 AND CurrentPosition[1] = 1 then
ReEntryCount = 1;
If MarketPosition = 0 AND MarketPosition(1) = 1 AND ReEntryCount < ReBars then Begin
ReEntryCount = ReEntryCount + 1;
Buy ("Long ReEntry") ReEntry Shares next bar at Highest( High , 10 ) Stop;
End;
If MarketPosition = 0 AND MarketPosition(1) = -1 AND ReEntryCount < ReBars then Begin
ReEntryCount = ReEntryCount + 1;
Sell ("Short ReEntry") ReEntry Shares next bar at Lowest( Low , 10 ) Stop;
End;