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

EA Superstar v99.9

ea superstar v99.9@fxsignalspot..mq4
Вы автор или правообладатель?

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

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

О программе

EA Superstar v99.9 — торговый советник для MetaTrader 4, который автоматически открывает позиции на покупку и продажу, управляя ордерами через торговые API платформы. Советник обрабатывает событие каждого тика и выполняет торговые операции на основании настроенных параметров объёма и уровней.

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

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

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

НастройкаОписание
Magic Number (magic) Магический номер для идентификации ордеров, управляемых данным советником
Lot Started (lot_initial) Начальный объём лота для первой позиции
Multiplier (multiplier) Множитель для увеличения лота при каждом последующем уровне наращивания
TakeProfit (Pips) (takeprofit) Уровень фиксации прибыли в пунктах для управляемых позиций
Distance Open Position (Pips) (distance_pips) Расстояние в пунктах для открытия следующей позиции в наращивании
Max Position(layer) Per Side (maxlayer) Максимальное количество позиций в наращивании на одну сторону
Show Info On Chart (display_info) Включает или отключает отображение информационной панели на графике с данными о счёте и позициях
Info's Text Color (kolor_display) Цвет текста информационной панели на графике
Font Size (fontsize) Размер шрифта текстовых меток на информационной панели графика
Получить полный код

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

#property version   "9.99"
#property strict
#property description " New Version: Created for JOHN ANAK ANTHONY 2.5.2017"

string EA;
string  EA1                             =  "EA Superstar v99.9";   //  Comment To Dispaly In Order
extern int     magic                    =  1;                //  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            =  15;                     //  Distance Open Position (Pips)
extern int     maxlayer                 =  100;                    //  Max Position(layer) Per Side
extern bool    display_info             =  true;                   //  Show Info On Chart
extern color   kolor_display            =  clrYellow;              //  Info's Text Color
extern int     fontsize                 =  10;                     //  Font Size

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(nl(MarketInfo(Symbol(),MODE_ASK)));}//

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

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)," kecil.. minimum lot broker= ", minlot());
if (Lot  > maxlot()) Print( " periksa saiz lot = ", DoubleToStr(Lot,2)," besar.. maximum lot broker= ", maxlot());

if (AccountFreeMarginCheck(Symbol(),type,Lot)>0)
   {
   Comment("");
   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());
   } 
else Comment("Bro.. Pls check ur account margin..");
}// 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 max        =  maxlayer ;
   int reserved   =  max+100;
   ArrayResize(lotsbuy ,max,reserved);
   ArrayResize(lotssell,max,reserved);

}// end

void initialize_lotbuy()
{
lotsbuy[0]= lot_initial;
lotsbuy[1]= lot_initial;

for(int x=2; x<maxlayer ; x++)
      lotsbuy[x]   =  lotsbuy[x-1]*multiplier;  

for(int x=0; x<maxlayer ; x++)
      lotsbuy[x]  =  NormalizeDouble(lotsbuy[x],2);

}// end

void initialize_lotsell()
{
lotssell[0]= lot_initial;
lotssell[1]= lot_initial;

for(int x=2; x<maxlayer; x++)
      lotssell[x]   =  lotssell[x-1]*multiplier;   

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*dec()*Point < stoplvl())
   value = 0;
return(nl(value));
}//

double tp_sell()
{
double value   =  latest_openprice(OP_SELL) - takeprofit * dec()* Point;
if (takeprofit*dec()*Point < stoplvl())
   value = 0;
return(nl(value));
}//

void put_tp(double tp_cal)
{

double tp = nl(tp_cal);
for(int x=0; x<OrdersTotal(); x++)
   {
   RefreshRates();

   if(OrderSelect          (x,SELECT_BY_POS,MODE_TRADES))
   if(OrderSymbol()        == 

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

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

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

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

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

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

Стоимость полного кода
873,10₽ ≈ $10.67