Author: Copyright � 2009,10, Martingeil
Orders Execution
Checks for the total of closed ordersChecks for the total of open ordersIt automatically opens orders when conditions are reached
0 Views
0 Downloads
0 Favorites
star_3
// êîäèðîâàë Martingeil c ôîðóìà ÄÖ http://www.fx4u.ru
// ïî ñèñòåìå TC âíåøíèé áàð FxProfitCross ñ ôîðóìà http://goodservice.su/forum/41-3545-1
//===============================================================================================================================
#property copyright "Copyright © 2009,10, Martingeil ;)"
#property link      "fx.09@mail.ru"
extern int magic = 999;
extern string ð="-===Kazakstan treider===-:";
extern string b=" ðàñ÷åòû Ñòîï-Ëîññ :";
extern int SLbars = 6;//íà ñêîëüêèõ áàðàõ áóäåò ïðîèçâîäèòñÿ ïîèñê íàèìåíüøåãî ëîó, è íàèáîëüøåãî õàÿ äëÿ âûñòàâëåíèÿ ñòîïà 
extern double StopLoss = 30.0;//ñòîï îò óðîâíÿ ëîó è õàé
extern string ñ=" ðàñ÷åòû Òåéêïðîôèòà :";
extern double TakeProfit = 10.0;//ðàññòîÿíèå òåéêïðîôèòà, îò óðîâíÿ ñåðåäèíû, ðàñ÷åò íàèìåíüøåãî ëîó + íàèáîëüøåãî õàÿ /2 
//òåéê åñëè ïîñòàâèòü áîëüøåå çíà÷åíèå îí áóäåò îòíèìàòü îò ñåðåäèíû õàÿ è ëîó, òî åñòü ÷òî áû ñîêðàòèòü óðîâåíü òåéêà
//íàäî ñòàâèòü çíà÷åíèå áîëüøå, åñëè =50 çíà÷èò òåéê áóäåò áëèçêî ê îòêðûòèþ, åñëè ïîñòàâèòü =0 òî óðîâåíü òåéêà áóäåò  
//íà óðîâíå ñåðåäèíû, ìåæäó õàé è ëîó.
extern string d=" ðàñ÷åòû ýêñòðèìóìà õàé è ëîó :";  
extern int hibar   = 100; //ñêîëüêî áàðîâ áóäåò ïðîñìàòðèâàòüñÿ, äëÿ ïîèñêà íàèáîëüøåãî çíà÷åíèÿ Õàÿ ôèëüòð
extern int lobar   = 100; //ñêîëüêî áàðîâ áóäåò ïðîñìàòðèâàòüñÿ, äëÿ ïîèñêà íàèìåíüøåãî çíà÷åíèÿ Ëîó ôèëüòð
extern int zone    =  20; //çîíà ðàññòîÿíèå â ïóíêòàõ îò õàÿ è ëîó ôèëüòð
extern int fohmula5 = 5; //formula >=5 åñëè áîëüøå çíà÷åíèå ïðè âû÷èñëåíèè ñâå÷è òî îòêðûâàåì îðäåð
extern string a=" ëîò :"; 
extern double Lots = 0.1; //ñòàðòîâûé ëîò
extern double MaximumRisk = 0.1;//ðèñê ëîòà
extern double DecreaseFactor = 3.0;
extern double balans = 1000;//áàëàíñ ðåèíâåñòèðîâàíèÿ


double spread;
//===============================================================================================================================
int init() {
   spread = MarketInfo(Symbol(), MODE_SPREAD);
   return (0);}
int deinit()  {
   return (0);}
//===============================================================================================================================   
double LotsOptimized() {
   double minlot = MarketInfo(Symbol(), MODE_MINLOT);
   double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);
   double lot = Lots;
   int orders = OrdersHistoryTotal();
   int losses = 0;
   lot = NormalizeDouble(AccountFreeMargin() * MaximumRisk / balans, 2);
   if (DecreaseFactor > 0.0) {
      for (int i = orders - 1; i >= 0; i--) {
         if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == FALSE) {
            Print("Error in history!");
            break;
         }
         if (OrderSymbol() != Symbol() || OrderType() > OP_SELL) continue;
         if (OrderProfit() > 0.0) break;
         if (OrderProfit() < 0.0) losses++;
      }
      if (losses > 1) lot = NormalizeDouble(lot - lot * losses / DecreaseFactor, 2);
   }
   if(lot < minlot) lot = minlot;
   if(lot > maxlot) lot = maxlot;   
   return (lot);}

//===============================================================================================================================   

int start() {
   
   double hi_100,lo_100;
 
   int ticket;
   int total;
   int filt;
   int op1,op2,op3;
   double stopB,stopS,SLB,SLS;
   double TP,TPB,TPS; 

   hi_100 = High[iHighest(Symbol(), 0, MODE_HIGH, hibar, 0)]; //ïîèñê õàÿ íàèáîëüøåãî çíà÷åíèÿ
   lo_100 = Low [iLowest (Symbol(), 0, MODE_LOW, lobar, 0)];  //ïîèñê ëîó íàèìåíüøåãî çíà÷åíèÿ
   if (Bid < lo_100 + zone * Point){filt = 1;}//áàé ôèëüòð
   else if (Bid > hi_100 - zone * Point){filt =-1;}//ñåëë ôèëüòð
   TP = (hi_100+lo_100)/2.0;  //âû÷èñëÿåì ñåðåäèíó ìåæäó õàé è ëîó
   TPB = TP-TakeProfit*Point; //òåéê äëÿ áàé îò ñåðåäèíû õàÿ è ëîó
   TPS = TP+TakeProfit*Point; //òåéê äëÿ ñåëë îò ñåðåäèíû õàÿ è ëîó
   stopS = High[iHighest(Symbol(), 0, MODE_HIGH, SLbars, 0)]; //îïðåäåëÿåì óðîâåíü ñòîïà äëÿ ñåëë 
   stopB = Low [iLowest (Symbol(), 0, MODE_LOW, SLbars, 0)];  //îïðåäåëÿåì óðîâåíü ñòîïà äëÿ áàé
   SLB = stopB - StopLoss*Point; //ñòîï îò ëîó äëÿ áàé
   SLS = stopS + StopLoss*Point; //ñòîï îò õàÿ äëÿ ñåëë
   if (High[2]>High[1]&&Low[2]<Low[1]&&Bid>High[1]){op1=1;}
   else if (High[2]<High[1]&&Low[2]>Low[1]&&Bid<Low[1]){op1=-1;}
   if (High[1]>High[2]&& Low[1]<Low[2]&&Bid>High[1]){op2=1;}
   else if (High[1]<High[2]&& Low[1]>Low[2]&&Bid<Low[1]){op2=-1;}
   if((((High[1]-Low[1])/(High[1]-Close[1]))>=fohmula5&&Bid>High[1]) ||(((High[1]-Low[1])/(Open[1]-Close[1]))>=fohmula5&&Bid>High[1])){op3=1;}
   else if((((High[1]-Low[1])/(High[1]-Close[1]))>=fohmula5&&Bid>Low[1]) ||(((High[1]-Low[1])/(Open[1]-Close[1]))>=fohmula5&&Bid>Low[1])){op3=-1;}
//===============================================================================================================================      
   total=OrdersTotal();
   if(total<1){ 
          
          if (AccountFreeMargin() < 1000.0 * Lots) {
          Print("We have no money. Free Margin = ", AccountFreeMargin());
          return (0);}
         

   if (filt==1){ //ñèãíàë ôèëüòðà 100 áàðîâ äëÿ áàé îðäåðà
   if ((op1==1)||(op2==1)||(op3==1)){      
       ticket = OrderSend(Symbol(), OP_BUY, LotsOptimized(),NormalizeDouble(Ask,Digits), 3, SLB, TPB, "", magic, 0, Lime);
       if(ticket>0){
       if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());}
       else Print("Error opening BUY order : ",GetLastError());return(0);}}
   
   if (filt==-1){
   if ((op1==-1)||(op2==-1)||(op3==-1)){ 
       
       ticket = OrderSend(Symbol(), OP_SELL, LotsOptimized(), NormalizeDouble(Bid,Digits), 3, SLS, TPS, "", magic, 0, Red);
       if(ticket>0){
       if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());}
       else Print("Error opening SELL order : ",GetLastError());return(0);}}}return(0);}
//===============================================================================================================================

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---