← К каталогу
Исходный код · ID 3854

EA Superstar v8.88

ea superstar v8.88.mq4
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

EA Superstar v8.88 — торговый советник для MetaTrader 4, написанный на языке MQL4. Советник обрабатывает рыночные события через функцию OnTick и использует торговые API платформы для открытия и управления ордерами.

Советник открывает начальные позиции BUY и SELL с заданным размером лота, а затем добавляет дополнительные ордера при движении цены, увеличивая размер лотов по мультипликатору. Для каждой позиции рассчитывается и устанавливается тейк-профит в пунктах с учётом брокерского стоп-уровня.

Встроена функция отображения на графике с информацией о количестве открытых позиций и текущем плавающем профите. Все ордера советника идентифицируются с помощью магического числа, что позволяет изолировать его сделки от других участников рынка.

Настройки программы

НастройкаОписание
Magic Number (magic) Magic Number — Идентификационный номер для ордеров советника
Lot Started (lot_initial) Lot Started — Начальный размер лота для открытия позиций
Multiplier (multiplier) Multiplier — Множитель для увеличения размера лота при добавлении ордеров
TakeProfit (Pips) (takeprofit) TakeProfit (Pips) — Тейк-профит в пунктах
Distance Open Position (Pips) (distance_pips) Distance Open Position (Pips) — Расстояние между позициями в пунктах
Show Info On Chart (display_info) Show Info On Chart — Отображение информации на графике
Получить полный код

Поиск по коду файла

#property version   "1.00"
#property strict
#property description " Created for JOHN ANAK ANTHONY 2.5.2017"

string EA;
string  EA1                             =  "EA Superstar v8.88 ";  //  Comment To Dispaly In Order
extern int     magic                    =  7676791;                //  Magic Number
extern double  lot_initial              =  0.01;                   //  Lot Started
extern double  multiplier               =  2.0;                    //  Multiplier  
extern int     takeprofit               =  20;                     //  TakeProfit (Pips)
extern int     distance_pips            =  10;                     //  Distance Open Position (Pips)
int     maxlayer                        =  100;                    //  Max Layer Martingale
extern bool    display_info             =  true;                   //  Show Info On Chart

double lotsbuy[];
double lotssell[];

string buy = " buy ";
string sell= " sell ";

int OnInit()
  {
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
  {

ObjectsDeleteAll();

  }

void OnTick()
  {
      // код доступен только после оплаты
   }

void OnTimer()
  {

  }

double OnTester()
  {

   double ret=0.0;

   return(ret);
  }

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {

  }

double stoplvl()
{
double value    =  0;
double value1   =  MarketInfo(Symbol(),MODE_STOPLEVEL);
double value2   =  MarketInfo(Symbol(),MODE_FREEZELEVEL); 

if (value1  >  value2)  value   =  value1;
else 
if (value1  <  value2)  value   =  value2;

return(value*Point);
}// end stplvl

int dec(){   int decimal;   if (Digits==3|| Digits==5) decimal=10;   else  decimal=1;   return(decimal);}

double ask()
{
RefreshRates();
return(NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),Digits));
}//

double bid()
{
RefreshRates();
return(NormalizeDouble(MarketInfo(Symbol(),MODE_BID),Digits));
}//

double minlot()
{return(MarketInfo(Symbol(),MODE_MINLOT));}

double maxlot()
{return(MarketInfo(Symbol(),MODE_MAXLOT));}

void openorder( int type, double Lot,double price,double SLvalue, double TPvalue, color kolor)
{ 
if (Lot  < minlot()) Print( " periksa saiz lot = ", DoubleToStr(Lot,2)," kecik.. minimum lot broker= ", minlot());
if (Lot  > maxlot()) Print( " periksa saiz lot = ", DoubleToStr(Lot,2)," besar.. maximum lot broker= ", maxlot());

bool order  =  OrderSend(Symbol() ,type ,Lot ,price ,3*dec() ,SLvalue ,TPvalue ,EA ,magic ,0 ,kolor);
if  (!order)   Print(Symbol()  ,",  Orderticket = ",OrderTicket(),", type= ",type,", ERROR=", GetLastError());
}// end

int counter(int type, int magicnumber)
{
int count  =  0;
for (int x=0;x<OrdersTotal();x++)
   { 
     if(OrderSelect        (x,SELECT_BY_POS,MODE_TRADES) )
     if (OrderSymbol()     != Symbol())      continue;
     if( OrderMagicNumber()!= magicnumber)   continue;
     if (OrderType()       != type)          continue;
         count++;
   }// for loop
return(count);
}// end

void array_resize()
{
   int reserved   =  200;
   int max        =  maxlayer ;
   ArrayResize(lotsbuy ,max,reserved);
   ArrayResize(lotssell,max,reserved);

}// end

void initialize_lotbuy()
{
lotsbuy[0]= lot_initial;
for(int x=1; x<maxlayer ; x++)
   {
    lotsbuy[x]   =  lotsbuy[x-1]*multiplier;   
   } // for loop
for(int x=0; x<maxlayer ; x++)
      lotsbuy[x]  =  NormalizeDouble(lotsbuy[x],2);

}// end

void initialize_lotsell()
{
lotssell[0]= lot_initial;
for(int x=1; x<maxlayer; x++)
   {
    lotssell[x]   =  lotssell[x-1]*multiplier;   
   } // for loop
for(int x=0; x<maxlayer ; x++)
      lotssell[x]  =  NormalizeDouble(lotssell[x],2);

}// end

double latest_openprice(int type)
{
double value=0;
int ticket  =  get_latest_ticket(type);
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
   value= OrderOpenPrice();

return(value);

}// end

double nextlayer_pricebuy()
{
double value  =  latest_openprice(OP_BUY)  - dist();
return(nl(value));
}// end

double nextlayer_pricesell()
{
double value  =  latest_openprice(OP_SELL)  + dist();
return(nl(value));
}// end

double dist()
{return(distance_pips *dec() *Point);}

double nl(double value)
{return(NormalizeDouble(value,Digits));}// end

int get_latest_ticket(int type)
{
int ticket   =  0;
for (int x=0;x<OrdersTotal();x++)
     {
     if(OrderSelect           (x,SELECT_BY_POS,MODE_TRADES))
     if(OrderSymbol()         !=  Symbol())            continue;
     if(OrderMagicNumber()    !=  magic)               continue; 
     if(OrderType()           !=  type)                continue;
     if(OrderTicket()         >   ticket || ticket == 0 )
                     ticket   =   OrderTicket();
     }// for loop  

return(ticket);
}// end

double tp_buy()
{
double value   =  latest_openprice(OP_BUY) + takeprofit * dec()* Point;
if (takeprofit < stoplvl())
   value = 0;
return(nl(value));
}//

double tp_sell()
{
double

Показано первые 50% кода (символов: 7567)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
756,70₽ ≈ $9.25