Orders Execution
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
VR---TRI-BOYCA
//////////////////////////////////////////////////////////////////////
// VR---TRI-BOYCA.mq4 //
// Voldemar227 //
// http://www.tesvop.narod.ru //
//////////////////////////////////////////////////////////////////////
// ÏÎÃËÎÙÅÍÈÅ //
//////////////////////////////////////////////////////////////////////
#property copyright "http://www.tesvop.narod.ru"
extern string Íàñòðîéêè = "Ãëàâíûå íàñòðîéêè"; //
extern double LotsPercent = 10 ; //
extern int Loss = 2000 ; // ðàññòîÿíèå äî ÑòîïËîññà â ïóíêòàõ (0 - îòêëþ÷èòü ÑË)
extern int Profit = 1000 ; // ðàññòîÿíèå äî ÒåéêÏðîôèòà â ïóíêòàõ (0 - îòêëþ÷èòü)
extern string s0 = "Íàñòðîéêè òðåèëèíã ñòîï-ëîññà"; //îãëàâëåíèå
extern bool UseTrail = true ; //âêëþ÷åíèå/âûêëþ÷åíèå òðåèëèíã-ñòîïà
extern bool TrailWhileMinus = false ; //ïàðàìåòð îòâå÷àåò çà íåïðåðûâíîå/ñêà÷êîîáðàçíîå ïåðåìåùåíèå ñòîï-ëîññà â á/ó
extern int Trail = 300 ;
extern int MAPeriod1 = 21 ; //Ïåðèîä //
extern int Slip =5; //Ïðîñêàëüçûâàíèå
extern int MagicNumber = 227 ; //
int tiket;
int start()
{
double MA1 =iMA(NULL,0,MAPeriod1,0,1,PRICE_MEDIAN,0);
double go=(Open[3]-Close[1])*10000;
if (Close[1]>Open[3])
go=go*(-1);
Print("go",go);
//---------------------------------------------------------------------------------------------------------------//
//Ïðîâåðÿåì íàëè÷èå îòêðûòûõ îðäåðîâ //
//---------------------------------------------------------------------------------------------------------------//
double Lots;
Lots=NormalizeDouble(AccountBalance()*0.00001*LotsPercent,1);
double slb,tpb,sls,tps;
//if (go>Delta)
if(OrdersTotal()==0)
if((Open[3]<Close[3])&&(Open[2]<Close[2])&&(Open[1]<Close[1])&&(Close[1]>Close[3]))//&&(upS1<StohMin)) // Ñðàâíèâàåì èíäèêàòîðû // (Close[0]<=nizB)&&
{
Alert("BUY"); // //
slb=NormalizeDouble(Bid - (Loss*Point),Digits); //ðàñ÷¸ò ñòîïà äëÿ áàé ïîçèöèé//
tpb=NormalizeDouble(Ask + (Profit*Point),Digits); //ðàñ÷¸ò ïðîôèòà äëÿ áàé ïîçèöèé//////////
tiket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,MA1,tpb,NULL,MagicNumber,0,CLR_NONE);//Âõîä íà áàé//
if(tiket<0) Alert("Îøèáêà ¹ - ",GetLastError()," Íà èíñòðóìåíòå ", Symbol());
} // //
else //íåò ïîçèöèè íà áàé òîãäà èùåì íà ñåëë//
if((Open[3]>Close[3])&&(Open[2]>Close[2])&&(Open[1]>Close[1])&&(Close[1]<Close[3]))//&&(upS1>StohMax))
{
Alert("SELL"); // //
sls=NormalizeDouble(Ask + (Loss*Point),Digits); //ðàñ÷¸ò ñòîïà äëÿ ñåëë ïîçèöèé//
tps=NormalizeDouble(Bid - (Profit*Point),Digits); //ðàñ÷¸ò ïðîôèòà äëÿ ñåëë ïîçèöèé//
tiket=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,MA1,tps,NULL,MagicNumber,0,CLR_NONE);//Âõîä ñåë //
if(tiket<0) Alert("Îøèáêà ¹ - ",GetLastError()," Íà èíñòðóìåíòå ", Symbol()); //ïèøåò îøèáêó//
}
//---------------------------------------------------------------------------------------------------------------------------
//Òðàë
//---------------------------------------------------------------------------------------------------------------------------
TrailingStop(tiket);
//----
return(0);
}
//--------------------------------------- TrailingStop ---------------------------------
void TrailingStop(int tiket) //ôóíêöèÿ ïðèíèìàåò òèêåò îáðàáàòûâàåìåîãî îðäåðà
{
bool res; //ïåðåìåííàÿ äëÿ îáðàáîòêè âîçâðàùàåìûõ çíà÷åíèé ôóíêöèé
res = OrderSelect(tiket, SELECT_BY_TICKET); //âûáèðàåì îðäåð
if(res)
{
if(OrderType() == OP_BUY) //îáðàáîòêà îðäåðà íà ïîêóïêó
if(TrailWhileMinus == true || Bid-OrderOpenPrice()>Point*Trail) //íå òðàëèì, ïîêà íå ìîæåì äîñòè÷ü áåçóáûòêà ïåðâûì ïåðåíîñîì ñòîïà
if(Bid - OrderStopLoss() > Trail*Point) //îñíîâíîå óñëîâèå íåîáõîäèìîñòè ïåðåìåùåíèÿ ñòîï-ëîññà
{
res = OrderModify(OrderTicket(), 0, Bid - Trail*Point, OrderTakeProfit(), 0);
if(res<0)
Alert("TrailingStop OrderModify Error: ", GetLastError()); //îïîâåùåíèå îá îøèáêå
}
if(OrderType() == OP_SELL) //îáðàáîòêà îðäåðà íà ïðîäàæó
if(TrailWhileMinus == true || OrderOpenPrice()-Ask>Point*Trail) //íå òðàëèì, ïîêà íå ìîæåì äîñòè÷ü áåçóáûòêà ïåðâûì ïåðåíîñîì ñòîïà
if(OrderStopLoss() - Ask > Trail*Point) //îñíîâíîå óñëîâèå íåîáõîäèìîñòè ïåðåìåùåíèÿ ñòîï-ëîññà
{
res = OrderModify(OrderTicket(), 0, Ask + Trail*Point, OrderTakeProfit(), 0);
if(res<0)
Alert("TrailingStop OrderModify Error: ", GetLastError()); //îïîâåùåíèå îá îøèáêå
}
}
}
return(0);
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
---