log in     sign up for free
 
I like the Japanese philosophy where you ask questions rather than look for answers. The more questions you come up with the better. The answers will happen.
Sunny Harris
 
 
Home
systems (285)
 
 
Special offer: buy MetaStock (try for free)   |   Reuters QuoteCenter Real-Time Data (get a free month)   |   EOD Data
 

Buy

MetaStock

     (special offer)
 
 
 

Buy

EOD data for MetaStock

     (special offer)
 
 
 

Buy

Realtime data for MetaStock

     (special offer)
 
 
Formula Library
 
AmiBroker
MetaTrader
MetaStock
TradeStation
Wealth-Lab
NinjaTrader
 
add your formula
System Library
 
 
Account login
Your email:
Password:
 
Log in
New to s4t? Sign up.
If you forgot your password click here.
Search the Web
 
Custom Search

ASC Trend ++ Expert(v.2.1)

System for: MetaTrader

 

 

Views:  1475

Added: November 16, 2008
 
Rate this code:  Rate: 1 Rate: 2 Rate: 3 Rate: 4 Rate: 5
This formula has not been rated yet
 
 

email this link

 
 
Tags: MetaTrader, system
 


ASC++ Expert(v.2.1) ASC Trend based expert (corrected version

 

 



Code:

/*[[ Name := ASC++ Expert Author := Copyright c 2004, Jens Daniel Link := Notes := Lots := 1 Stop Loss := 0 Take Profit := 200 Trailing Stop := 0 ]]*/ Defines: slippage(3),RISK(3),EntryStopLevel(10),EntryRange(27),TSLevel1(30),TSLevel2(60),SigValMin(5); Variables: value2(0), value3(0), value10(10), value11(0), x1(70), x2(30), i1(0); Variables: TrueCount(0), Counter(0), Range(0), AvgRange(0), MRO1(0), MRO2(0); Variables: i(0),val1(0), val2(0), shift(0),t0(0),TradesOnSymbol(0),cnt1(0); Variable : AvgRange3(0),trend2(0),price2(0),value30(0),dK2(0); Variable : V1(0),V2(0),P1(9),n1(9),n2(49),V3(0),V4(0),P2(54),wprfast(0),wprslow(0),cnt(0); Variable : bar(0),value(0),price(0),trend(0),dK(0), AvgRange2(0),WATR(0),StartBars(1),AveragePeriod(10),Reg(1); Variable : ESLevel(0),vartime(0),SigValBuy(0),SigValSell(0),SigValBuy1(0),SigValSell1(0),timecntsell(0),timecntbuy(0),sl(0); array: nrtrr[10](0),nrtrg[10](0),nrtrwatrr[10](0),nrtrwatrg[10](0),ascsigbuy[30](0),ascsigsell[30](0),Table_value2[50,2](0); t0 = StrToTime("2004.01.01 0:00"); if curtime>t0 then Begin value10=3+RISK*2; x1=67+RISK; x2=33-RISK; value11=value10; //-------------------------------------------------------------------------------------------------------------------- V1=iWPR(P1,cnt)*iWPR(P1,cnt)/100; V2=Ceil(V1); If V2n2 then wprfast=-(V2); V3=iWPR(P2,cnt)*iWPR(P2,cnt)/100; V4=Ceil(V3); If V4n2 then wprslow=-(V4); //---------------------------------------------------------------------------------------------------------------------- AvgRange2=0; for i=AveragePeriod DownTo 1 { dK = 1+(AveragePeriod-i)/AveragePeriod; AvgRange2=AvgRange2+ dK*Abs(High[i]-Low[i]); }; WATR = AvgRange2/AveragePeriod; if Close[StartBars-1] > Open[StartBars-1] then { value = Close[StartBars - 1] * (1 - WATR); trend = 1; nrtrwatrg[0]= value; nrtrwatrr[0]= 0; }; if Close[StartBars-1] < Open[StartBars-1] then { value = Close[StartBars - 1] * (1 + WATR); trend = -1; nrtrwatrr[0]= value; nrtrwatrg[0]= 0; }; for bar = 50 downto 0 { if trend >= 0 then { if Close[bar] > price then price = Close[bar]; value = price * (1 - WATR); if Close[bar] < value then { price = Close[bar]; value = price * (1 + WATR); trend = -1; }; } else if trend <= 0 then { if Close[bar] < price then price = Close[bar]; value = price * (1 + WATR); if Close[bar] > value then { price = Close[bar]; value = price * (1 - WATR); trend = 1; }; }; if trend = -1 then { nrtrwatrr[bar]= value; nrtrwatrg[bar]= 0; }; if trend = 1 then { nrtrwatrg[bar]= value; nrtrwatrr[bar]= 0; }; }; //---------------------------------------------------------------------------------------------------- AvgRange3=0; for i=1 To AveragePeriod { AvgRange3=AvgRange3 + Abs(High[i]-Low[i]); }; dK2 = AvgRange3/AveragePeriod; if Close[0] > Open[0] then { value30 = Close[0] * (1 - dK2); trend2 = 1; nrtrg[0]= value30; nrtrr[0]=0; }; if Close[0] < Open[0] then { value30 = Close[0] * (1 + dK2); trend2 = -1; nrtrr[0]=value30; nrtrg[0]=0; }; for bar = 50 downto 0 { if trend2 >= 0 then { if Close[bar] > price2 then price2 = Close[bar]; value30 = price2 * (1 - dK2); if Close[bar] < value30 then { price2 = Close[bar]; value30 = price2 * (1 + dK2); trend2 = -1; }; } else if trend2 <= 0 then { if Close[bar] < price2 then price2 = Close[bar]; value30 = price2 * (1 + dK2); if Close[bar] > value30 then { price2 = Close[bar]; value30 = price2 * (1 - dK2); trend2 = 1; }; }; if trend2 = -1 then { nrtrr[bar]= value30; nrtrg[bar]= 0; }; if trend2 = 1 then { nrtrg[bar]= value30; nrtrr[bar]= 0; }; }; //---------------------------------------------------------------------------------------------------- for shift=30 downto 0 Begin Counter=0; Range=0; AvgRange=0; For Counter=shift To shift+9 {AvgRange=AvgRange+Abs(High[Counter]-Low[Counter]); }; Range=AvgRange/10; Counter=shift; TrueCount=0; While Counter=Range*2.0 Then TrueCount=TrueCount+1; Counter=Counter+1; }; If TrueCount>=1 Then MRO1=Counter Else MRO1=-1; Counter=shift; TrueCount=0; While Counter=Range*4.6 Then TrueCount=TrueCount+1; Counter=Counter+1; }; If TrueCount>=1 Then MRO2=Counter Else MRO2=-1; If MRO1>-1 Then value11=3 Else value11=value10; If MRO2>-1 Then value11=4 Else value11=value10; value2=100-Abs(iWPR(value11,shift)); // PercentR(value11=9) Table_value2[shift,1]=shift; Table_value2[shift,2]=value2; value3=0; If value2=x2 And Table_value2[shift+i1,2]<=x1) { i1=i1+1; }; If Table_value2[shift+i1,2]>x1 Then { value3=high[shift]+Range*0.5; val1=value3; val2=0; }; }; If value2>x1 Then { i1=1; While (Table_value2[shift+i1,2]>=x2 And Table_value2[shift+i1,2]<=x1) { i1=i1+1; }; If Table_value2[shift+i1,2]0 and ascsigsell[0]>0 then { sigvalsell=Period; Timecntbuy=0; sigvalbuy=0; }; if ascsigbuy[1]>0 and ascsigsell[0]>0 then { Timecntbuy=0; sigvalbuy=0; if timecntsell!=Minute then { SigValsell=sigvalsell+1; timecntsell=Minute; }; }; if ascsigbuy[1]>0 and ascsigbuy[0]>0 then { sigvalbuy=Period; Timecntsell=0; sigvalsell=0; }; if ascsigsell[1]>0 and ascsigbuy[0]>0 then { Timecntsell=0; sigvalsell=0; if timecntbuy!=Minute then { SigValbuy=Sigvalbuy+1; timecntbuy=Minute; }; }; //---------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------- comment("ascbuy: ",ascsigbuy[0]," ","buysigval: ",sigvalbuy,"\n", "ascsell: ",ascsigsell[0]," ","sellsigval: ",sigvalsell,"\n", "nrtrwatrg[0]: ",nrtrwatrg[0]," ","nrtrg[0]: ",nrtrg[0],"\n", "nrtrwatrg[1]: ",nrtrwatrg[1]," ","nrtrg[1]: ",nrtrg[1],"\n", "nrtrwatrr[0]: ",nrtrwatrr[0]," ","nrtrr[0]: ",nrtrr[0],"\n", "nrtrwatrr[1]: ",nrtrwatrr[1]," ","nrtrr[1]: ",nrtrr[1],"\n", "wprfast: ",wprfast," ","wprslow :",wprslow,"\n", "Range: ",Normalize(range/point,0)); //---------------------------------------------------------------------------------------------------------- TradesOnSymbol=0; for cnt1=1 to TotalTrades { if (OrderValue(cnt1,VAL_TYPE)=OP_SELLSTOP or OrderValue(cnt1,VAL_TYPE)=OP_BUYSTOP or OrderValue(cnt1,VAL_TYPE)=OP_SELLLIMIT or OrderValue(cnt1,VAL_TYPE)=OP_BUYLIMIT or OrderValue(cnt1,VAL_TYPE)=OP_BUY or OrderValue(cnt1,VAL_TYPE)=OP_SELL) and OrderValue(cnt1,VAL_SYMBOL)=Symbol then TradesOnSymbol=TradesOnSymbol+1; }; If TradesOnSymbol=0 then begin //BuySetup----------------------------------------------------------------------------------------------- if ascsigbuy[0]<>0 then { if wprfast>0 then { if wprslow>=0 then { if rangex1 and sigvalbuy>sigvalmin then { if nrtrwatrg[0]>0 or ask>nrtrwatrr[0] then { if nrtrwatrg[1]=0 then sl =ascsigbuy[0] else sl = nrtrwatrg[1]; SetOrder(OP_BUYSTOP,lots,ask+EntryStopLevel*point,Slippage,sl,ask+EntryStopLevel*point+TakeProfit*Point,lime); vartime=TimeHour(time); exit; }; }; }; }; }; //SellSetup----------------------------------------------------------------------------------- if ascsigsell[0]<>0 then { if wprfast<0 then { if wprslow<=0 then { if rangesigvalmin then { if nrtrwatrr[0]>0 or bid0 then { if wprfast>0 then { if ord(i,VAL_TYPE)=OP_SELLSTOP then { deleteorder(ord(i,VAL_TICKET),red); exit; }; if ord(i,VAL_TYPE)=OP_SELL then { CloseOrder(ord(i,VAL_TICKET),ord(i,VAL_LOTS),bid,slippage,red); exit; }; }; }; if ascsigsell[0]<>0 then { if wprfast<0 then { if ord(i,VAL_TYPE)=OP_BUYSTOP then { DeleteOrder(ord(i,VAL_TICKET),lime); exit; }; if ord(i,VAL_TYPE)=OP_BUY then { CloseOrder(ord(i,VAL_TICKET),ord(i,VAL_LOTS),ask,slippage,lime); exit; }; }; }; If ord(i,VAL_TYPE)=OP_BUYSTOP then { if timehour(time)!= vartime then { if high[2]>high[1] then { ModifyOrder(OrderValue(i,VAL_TICKET),OrderValue(i,VAL_OPENPRICE)-(high[2]-high[1]), OrderValue(i,VAL_STOPLOSS),OrderValue(i,VAL_TAKEPROFIT),Red); vartime=TimeHour(time); }; }; }; If ord(i,VAL_TYPE)=OP_SELLSTOP then { if timehour(time)!= Vartime then { if Low[2]nrtrwatrr[1] then { ModifyOrder(OrderValue(i,VAL_TICKET),OrderValue(i,VAL_OPENPRICE), nrtrwatrr[1],OrderValue(i,VAL_TAKEPROFIT),Red); }; }; If ord(i,VAL_TYPE)=OP_BUY then { If (Bid-OrderValue(i,VAL_OPENPRICE))>(Point*TSLevel1) and (Bid-OrderValue(i,VAL_OPENPRICE))<(Point*TSLevel2) then { if OrderValue(i,VAL_STOPLOSS)(Point*TSLevel1) and (OrderValue(i,VAL_OPENPRICE)-Ask)<(Point*TSLevel2) then { If OrderValue(i,VAL_STOPLOSS)>nrtrwatrr[1] then { ModifyOrder(OrderValue(i,VAL_TICKET),OrderValue(i,VAL_OPENPRICE), nrtrwatrr[1],OrderValue(i,VAL_TAKEPROFIT),Red); }; }; }; If ord(i,VAL_TYPE)=OP_BUY then { If (Bid-OrderValue(i,VAL_OPENPRICE))>(Point*TSLevel2) then { if OrderValue(i,VAL_STOPLOSS)=(Point*TSLevel2) then { If OrderValue(i,VAL_STOPLOSS)>nrtrr[1] then { ModifyOrder(OrderValue(i,VAL_TICKET),OrderValue(i,VAL_OPENPRICE), nrtrr[1],OrderValue(i,VAL_TAKEPROFIT),Red); }; }; }; }; }; end;

 




 

Code to difficult? Find somebody to help you with coding here.

 



Author: Jens Daniel
Source: www.xeatrade.com

 

View similar:

Bolliger Breakout Ver 1.0
ASC Trend ++ Expert(v.2.1)
Awesome Oscillator auto Trader
B % oscillator system
2EMA system
Always In Play
2EMA System-v03
5min USDCHF
2ways system
...
 
 
all systems for MetaTrader
all systems

 

 

Email to friend

Top

 

     
However we try to maintain hiqhest possible level of service - most formulas, oscillators, indicators
and systems are submitted by anonymous users.
Therefore S4T™ does not take any responsibility for it's quality.
If you use any of this information, use it at your own risk. You are responsible for your own trading decisions.
Be sure to verify that any information you see on these pages is correct, and is applicable to your particular trade.
In no case will S4T™ be responsible for your trading gains or losses.
PayPalSecure payments by PayPal S4T™ is a part of TAURO EDUCATION NETWORK
 
Privacy note | (c) copyrights systems4trading.com 2006-2009