Бот-Советник для МТ4. Сумарный "0" - убытка.
Торговый робот отслеживает отрицательный профит по всем ордерам валютной пары. Устанавливается на график когда у вас суммарный отрицательный профит и вы ожидаете возврата к положительному или нулевому профиту. Как только будет достигнут заданный уровень профита - робот закроет все открытые ордера по данной валютной паре.
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
//---- Считает общую прибыль и закрывает все ордера при достижении положительного профита
extern double Lot=0.01;
extern int SL=0;
extern int TP=10;
extern int Slip=10;
extern double Tral_Stope = 10;//
double Profit=0;
double mcd_1;
double mcd_2;
int shift;
bool ord;
double sl;
double Bid_or=Bid;// цена последнего ордера на покупку
extern bool SoundON=true;
bool TurnedUp=false;
bool TurnedDown=false;
int OrdOp=0;
int AllOr = 0;
int SellOr = 0;// колич ордеров на продажу
int BuyOr =0;// колич ордеров на покупку
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
Profit = 0;
int slippage=8;
double point;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderType()==OP_BUY)
{
point=MarketInfo(OrderSymbol(),MODE_POINT);
if (point==0) break;
Profit = Profit + OrderProfit()+OrderSwap();
}
if (OrderType()==OP_SELL)
{
point=MarketInfo(OrderSymbol(),MODE_POINT);
if (point==0) break;
Profit = Profit + OrderProfit()+OrderSwap();
}
}
if(Profit>0){
CloseAll();
}
count(Profit);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void count(double profit){
int BOr =0;
int SOr =0;
int All =0;
for(int i=0; i<OrdersTotal(); i++){
if(OrderSelect(i,SELECT_BY_POS)==true){
//------------подсчет открытых ордеров--------
if(OrderType()==OP_BUY) {
BOr++;
}
if(OrderType()==OP_SELL) {
SOr++;
}
}
}
All = BOr + SOr;
Comment ("Открыто Buy ", BOr,
" Открыто Sell ", SOr," All=",All," Прибыль = ",profit);
}
//===============================================
void CloseAll() {
int slippage=8;
double point;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderType()==OP_BUY)
{
point=MarketInfo(OrderSymbol(),MODE_POINT);
if (point==0) break;
OrderClose(OrderTicket(),OrderLots(),Bid,slippage);
}
if (OrderType()==OP_SELL)
{
point=MarketInfo(OrderSymbol(),MODE_POINT);
if (point==0) break;
OrderClose (OrderTicket(),OrderLots(),Ask,slippage);
}
}
Alert("Достигнут 0 убыток по всем ордерам!");
}
// End
следить за суммарным значением всех ордеров по выбранной валютной паре !!!! Если установить советника при положительном профите закроет все ордера!!!
Источник: http://Роботы для заработка на форекс. Советник для мт4 , ноль убытка |