Orders Execution
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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---