/*-----------------------------+ | | | Shared by www.Aptrafx.com | | | +------------------------------*/ //+------------------------------------------------------------------+ //+ Trade on 6-period HLCC/4 trend NO T/P, keep adjusting S/L | //+------------------------------------------------------------------+ // need OrderSelect so more than one order can be open at a time #property copyright "Ron Thompson" #property link "http://www.lightpatch.com/forex" // User Input extern double Lots = 0.1; extern double Stop_Loss = 10; //+------------------------------------------------------------------+ //| What to do 1st | //+------------------------------------------------------------------+ int init () { return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double oTYP0=0, oTYP1=0, oTYP2=0, oTYP3=0, oTYP4=0, oTYP5=0; double total; int cnt; bool foundorder=False; double SL; // // Error checking // if(Bars<100) { Print("bars less than 100"); return(0); } if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money"); return(0); } // we're going to need this in a couple of places, // so calculate it here every time SL=Stop_Loss*Point(); // // only one order at a time/per symbol // total=OrdersTotal(); for(cnt=0;cnt<OrdersTotal();cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol()==Symbol()) { // BUY orders if ( OrderType() == 0 ) { if ( OrderOpenPrice() - OrderStopLoss() > SL+(5*Point()) ) { Comment("BUY in progress SLUP! ",Symbol()," ",OrderOpenPrice()," ",OrderStopLoss() ); //OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Points*TrailingStop,OrderTakeProfit(),0,Red); } else { Comment("BUY in progress ",Symbol()," ",OrderOpenPrice()," ",OrderStopLoss() ); } } // SELL orders if ( OrderType() == 1 ) { if ( OrderStopLoss() - OrderOpenPrice() > SL+(5*Point()) ) { Comment("SELL in progress SLUP! ",Symbol()," ",OrderOpenPrice()," ",OrderStopLoss() ); //OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Points*TrailingStop,OrderTakeProfit(),0,Red); } else { Comment("SELL in progress ",Symbol()," ",OrderOpenPrice()," ",OrderStopLoss() ); } } foundorder=True; break; } } if ( foundorder == False ) { Comment(" "); // three-period oTYP0=(High[0]+Low[0]+Close[0]+Close[0])/4; oTYP1=(High[1]+Low[1]+Close[1]+Close[1])/4; oTYP2=(High[2]+Low[2]+Close[2]+Close[2])/4; oTYP3=(High[3]+Low[3]+Close[3]+Close[3])/4; oTYP4=(High[4]+Low[4]+Close[4]+Close[4])/4; // down trend if(oTYP4>oTYP3 && oTYP3>oTYP2 && oTYP2>oTYP1 && oTYP1>oTYP0) { Print("SELL Order started"); // no take profit so I can scalp if I want OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL,Bid-SL,"5P Sell",16789,0,Red); if(GetLastError()==0)Comment("SELL Order opened : ",Bid ); } // up trend if(oTYP4<oTYP3 && oTYP3<oTYP2 && oTYP2<oTYP1 && oTYP1<oTYP0) { Print("BUY Order started"); // no take profit so I can scalp if I want OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL,Ask+SL,"5P Buy",16543,0,White); if(GetLastError()==0)Comment("BUY Order opened : ",Ask); } } return(0); } //OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Points,"macd sample",16384,0,Red); //if(GetLastError()==0)Print("Order opened : ",OrderOpenPrice()); //return(0); //OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Points,"macd sample",16384,0,Red); //if(GetLastError()==0)Print("Order opened : ",OrderOpenPrice()); //return(0); //if(TrailingStop>0) // { // if(Bid-OrderOpenPrice()>Points*TrailingStop) // { // if(OrderStopLoss()<Bid-Points*TrailingStop) // { // OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Points*TrailingStop,OrderTakeProfit(),0,Red); // return(0); // } // } // }
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Checks for the total of open orders
It automatically opens orders when conditions are reached
Other Features: