Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

Think-Algo Modify for Amibroker (AFL)

Rating:
3 / 5 (Votes 2)
Tags:
trading system, amibroker

This program is for illustrative purposes only and
not construed as specific advisory recommendations.

  • It is not guaranteed to be free of errors.
  • Trades placed from this algorithm are taken at your
    own risk for your own account.
  • Past performance is not necessarily indicative of
    future results.

Indicator / Formula

Copy & Paste Friendly
 /* 
 Author: www.Think-Algo.com 
         www.facebook.com/ThinkAlgo
          
 Date: May 2016
             
 *** This program is for illustrative purposes only and
  not construed as specific advisory recommendations.
 *** It is not guaranteed to be free of errors. 
 *** Trades placed from this algorithm are taken at your     
 own risk for your own account. 
 *** Past performance is not necessarily indicative of     
 future results. 
 */  
 
 // Initial Capital  SetOption("InitialEquity", 1000000 ); // Commission is set to 0.1% SetOption("CommissionMode",1); 
 SetOption("CommissionAmount",0.1);
   
 // Buy/Sell at ATO one day after the signals are triggered SetTradeDelays(1,1,0,0);   
 RoundLotSize = 100; 
 BuyPrice = Open; 
 SellPrice = Open;  
  // Maximum position sizes  
  MaxPos = 30; 
 SetOption("MaxOpenPositions", MaxPos); 
 // Lookback periods   
 period1 = 20; 
 period2 = 60;  
 // Two Moving Averages  
 EMA_short = EMA(Close,period1); 
 EMA_long = EMA(Close,period2);
 //********** Conditions to BUY *************  
 // Liquidity is larger than 10 MB per day (on average) 
 Liquid = MA(C*V,period2) > 10e6; 
 // The short EMA crosses the longer EMA up in the past 3 days 
 BuyCon1 = BarsSince( Cross(EMA_short,EMA_long)) <= 3; 
 // ADX is trending up with +DMI > -DMI 
 BuyCon2 = ADX()> EMA(ADX(),period2) AND PDI() > MDI();  
 // The market is in a good condition trade 
 SetForeign("SET",True);     
 SETBuyCon =  RSI()>EMA(RSI(),period1) ;
 RestorePriceArrays();   
 
 Buy = Liquid AND BuyCon1 AND BuyCon2 AND SETBuyCon;    
 
 //********** Conditions to SELL *************  
 // The short EMA crosses the longer EMA down 
 SellCon1 = Cross(EMA_long,EMA_short);  
 // -DMI > +DMI indicates down trend 
 SellCon2 = PDI() < MDI();   
 
 Sell= SellCon1 OR SellCon2 ;//OR SellConMKC;  // Use ExRem to remove excessive Buy/Sell signals Buy = ExRem(Buy,Sell); 
 Sell = ExRem(Sell,Buy);    
 
 // ********  Position Size and Position Score ****  // Invest equally in each stock PositionSize = -100/MaxPos;    
 // If there are more than one buy signals at a given time, 
 // the priority of the Buy is based on the ranking from 
 // position score. Here, our criterion is the ratio of  
 // today's value with respect to the average past value PositionScore = C*V/MA(C*V,period2);
 
 // Stop Loss *************************************** 
 // Exit next day if the loss is larger than 10 % ApplyStop(stopTypeLoss,stopModePercent,10,2);
  Plot(C,"Test Think Algo system",colorDefault,styleCandle); 
PlotShapes(shapeUpArrow*Buy,ParamColor("UpArrow",10),0,L); 
PlotShapes(shapeDownArrow*Sell,ParamColor("DownArrow",11),0,H);

_SECTION_BEGIN("Automatic  Trend-line");

if (ParamToggle("Automatic Trend-line","Off|On",1))
{
////////  Created by Tomasz Janeczko & Modify By Chaiset setindex ///////
periodT = Param("period",50,1,250,1);
ColorLine = ParamColor("Color Trend-line",colorRed);
StyleTrend = ParamStyle("Style Trend line",styleLine,maskDefault);

x = Cum(1);

perchg = 0.3*LastValue( Highest( ROC( Low, periodT ) ));

startvalue = LastValue( Trough( Low, perchg, 1 ) );
endvalue1 = LastValue( Trough( Low, perchg, 2 ) );

startbar = LastValue( ValueWhen( Low == startvalue, x, 1 ) );
endbar = LastValue( ValueWhen( Low == endvalue1, x, 1 ) );

Aa = (endvalue1-startvalue)/(endbar-startbar);
b = startvalue;

trendline = Aa * ( x  - startbar ) + b;

Plot( IIf( x >= endbar, trendline, Null ), "Trendline", ColorLine,StyleTrend  );
}
_SECTION_END();


1 comments

1. abdalelah

good

Leave Comment

Please login here to leave a comment.

Back