Author: Copyright 2013, VVI
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
0 Views
0 Downloads
0 Favorites
VVI-bars
//+------------------------------------------------------------------+
//|                                                     VVI-bars.mq4 |
//|                                    Copyright 2013, VVI (daesher) |
//|                                              Version 0.0.1       |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, VVI"
#property link      ""

//Ñîâåòíèê íà òð¸õ âîçðàñòàþùèõ/óáûâàþùèõ áàðàõ. Ïðåäïîëàãàåòñÿ, ÷òî ñëåäóþùèé, åñëè è íå ïðîäîëæèò òåíäåíöèþ, òî ïîéä¸ò â íóæíîì
//íàïðàâëåíèè.
// Ñûðîé, ñîäåðæèò ìíîãî "õëàìîâîãî" êîäà. Ìîæåò ïîêàçàòü ïîëîæèòåëüíûå ðåçóëüòàòû íà H1 (USD/JPY) è H4 (Eur/USD).
//ß íå "ñèøíèê", à ïàñêàëèñò, òàê ÷òî îòäåëüíûå ôðàãìåíòû ïîêàæóòñÿ äðóãèì ñòðàííûìè è ñìåøíûìè.

//--- input parameters
extern double    Lot=0.1;
//extern int    MinDiff = 10; //Ìèíèìàëüíàÿ ðàçíèöà íà ïîèíòàõ íà òèêå - â ïóíêòàõ/ïèïñàõ
//extern double MinDiffMul = 2; //Âî ñêîëüêî ðàç ýòà ðàçíèöà äîëæíà óâåëè÷èòüñÿ íà ñë. òèêå
extern int StopLoss = 250;//subj
extern bool AutoSL = true; // Åñëè âêëþ÷¸í, "ëîñü" âûñòàâëÿåòñÿ ïî ïðåäûäóùåìó áàðó
extern double AutoSLCoeff = 1.2;//Êîýôôèöèåíò ê àâòîìàòè÷åñêîìó "ëîñþ" - ïî îòíîøåíèþ ê ïðåäûäóùåìó áàðó
//extern int Trail1 = 15;
//extern int Trail1To = 50;
//extern double Trail = 15;//Óñëîæí¸ííûé òðåéëèíã-ñòîï íà âòîðîé ñòàäèè. Ñòîëüêî ïðîöåíòîâ îò ãèïîòåòè÷åñêè âîçìîæíîãî
//extern int Seconds_Wait = 10; //Ïðè îòêðûòèè îðäåðà ïðîïóñêàòü íå ìåíåå äàííîãî ÷èñëà ñåêóíä, ÷òîáû èãíîðèðîâàòü "øóì".
// ïðîôèòà ìîæíî ïðîñàäèòü, ïðåæäå ÷åì çàêðûòü îðäåð.
extern int Magic = 0xBACE1;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+

int init()
  {
//----
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
double abs(double v)
{
  if (v < 0) {return(-v);} else {return(v);}
}

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
//Ôóíêöèè, íå èñïîëüçóåìûå â ñîâåòíèêå, íî îíè ìîãóò áûòü ïîëåçíû, íàïðèìåð, â äðóãîì
/*
int Trailer(double x,double y, double z)
{ 
  //Èñêóññòâåííûé ëîñü
  if ((y-z)>=StopLoss*Point) return(true);
  if (x<=y) return(false);
  if (z<=y) return(false);
  if ((x-y)<Trail1To*Point)
    {

    return((x-z)>Trail1*Point);
    }
  else
    return(((x-z)/(x-y)*100)>Trail);
}
*/
int OldBars;
int start()
  {
  int IsOrder = false;
  int IsCurr;
  double B1,B2,B3, SL;
  
  if (OldBars == Bars) return(0);
  OldBars = Bars;
  for (int i=0; i<OrdersTotal(); i++)
  {
   OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   IsCurr = (OrderMagicNumber()==Magic);
   IsOrder = IsOrder || IsCurr;
   if (IsCurr == true)
   {
     if (OrderType()==OP_BUY)
     {
       //if (Trailer(Max,Opened,Bid)==true)
       
       OrderClose(OrderTicket(),Lot,Bid,30,Red);
       /*else
       if (Bid>Max) Max = Bid;*/
     }
     if (OrderType()==OP_SELL)
     {
       //if (Trailer(-Min,-Opened,-Ask)==true)
       OrderClose(OrderTicket(),Lot,Ask,30,Red);
       /*else
       if (Ask<Min) Min = Ask;*/
     }
   }
  }
  
  //if (IsOrder==true) return(0);
  B1 = Close[3] - Open[3];
  B2 = Close[2] - Open[2];
  B3 = Close[1] - Open[1];
  //Print("We are here, B1=",B1," B2=",B2," B3=",B3," Bars=",Bars);
  if (((B1>B2)&&(B2>B3)&&(B3-B2<B2-B1)&&(B3<0))||((B1<B2)&&(B2<B3)&&(B3-B2>B2-B1)&&(B3>0)))
  {
    if (AutoSL) SL = abs(B3*AutoSLCoeff); else SL = StopLoss * Point;
    if (B3>B2)
      { 
       SL = Bid - SL;
       if ((!AutoSL)&&(StopLoss==0)) SL=0;
       OrderSend(Symbol(),OP_BUY,Lot,Ask,30,SL,0,"Order",Magic,0,Green);
       //Max = Bid;Opened=Ask;
      }
      else
      {
       SL=Ask+SL;
       if ((!AutoSL)&&(StopLoss==0)) SL=0;
       OrderSend(Symbol(),OP_SELL,Lot,Bid,30,SL,0,"Order",Magic,0,Green);
       //Min = Ask;Opened=Bid;
      }
      }
}
   

    
  

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 ---