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

Scalper Cash Maker EA

scalper cash maker ea@lifeindreamsworld.mq4
Вы автор или правообладатель?

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

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

О программе

Scalper Cash Maker EA — торговый советник для MetaTrader 4, разработанный MFOREX.PRO. Советник работает на графике в рамках заданного временного окна и анализирует текущие свечи для определения направления сделок. При формировании сигнальной свечи и достижении ценой заданных горизонтальных уровней советник открывает ордера на покупку или продажу.

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

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

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

НастройкаОписание
Risk Размер риска в процентах от баланса счёта, используемый для расчёта размера лота
Step Минимальный шаг для открытия повторных ордеров при усреднении позиций
TimeStart Час начала торговой сессии (в интервале от 0 до 23)
TimeEnd Час окончания торговой сессии (в интервале от 0 до 23)
Info Включение или отключение отображения информационной панели и торговых кнопок на графике
TextColor Цвет основного текста меток на графике
InfoDataColor Цвет числовых данных в информационной панели
FonColor Цвет фона информационной панели на графике
FontSizeInfo Размер шрифта текста в информационной панели и на кнопках
Magic Уникальный номер ордеров для идентификации позиций советника
Получить полный код

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

#property version   "1.00"

input double    Risk             =0.02;           //Риск         
input int       Step             =10;          //Минимальный шаг для второго и следуующих колен
extern int      TimeStart        =6;  
extern int      TimeEnd          =19; 
extern bool      Info             =true;  
extern color     TextColor        =White;   
extern color     InfoDataColor    =DodgerBlue; 
extern color     FonColor         =Black;   
extern int       FontSizeInfo     =7; 
input int       Magic            =2021;        //Уникальный номер ордеров

string comment ="www.mforex.pro";
double   MinProfit        =0.00;        //
int       Dist             =10; 
double   UpLot            =1;         //Множитель лота
color            FonButtonBuy     =Blue;
color            FonButtonSell    =Red;
color            TextButtonBS     =White; 
color            ButtonBorder     =Blue;
color            ClickButton      =Black;
int              o;
double           Lot              =0;
int              dig;
int r, D;
double PricSellLine, PricBuyLine, NewLot, NewProfProc;

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

void OnDeinit(const int reason)
{
ObjectsDeleteAll(0,OBJ_HLINE);
}

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

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

if(ObjectGetInteger(0,"TRADEs_B",OBJPROP_STATE))
 {ObjectSetInteger(0,"TRADEs_B",OBJPROP_BGCOLOR,ClickButton);}
else 
 {ObjectSetInteger(0,"TRADEs_B",OBJPROP_BGCOLOR,FonButtonBuy);}

if(ObjectGetInteger(0,"TRADEs_S",OBJPROP_STATE))
 {ObjectSetInteger(0,"TRADEs_S",OBJPROP_BGCOLOR,ClickButton);}
else 
 {ObjectSetInteger(0,"TRADEs_S",OBJPROP_BGCOLOR,FonButtonSell);}

if(id==CHARTEVENT_OBJECT_CLICK)
{string clickedChartObject=sparam;

if(clickedChartObject=="TRADEs_B")
  {o=OrderSend(Symbol(),OP_BUY,Lot,Ask,10,0,0,comment,Magic,0,Green);       
   ObjectSetInteger(0,"TRADEs_B",OBJPROP_STATE,false);}
if(clickedChartObject=="TRADEs_S")
  {o=OrderSend(Symbol(),OP_SELL,Lot,Bid,10,0,0,comment,Magic,0,Red);
   ObjectSetInteger(0,"TRADEs_S",OBJPROP_STATE,false);}

ChartRedraw();
}}

void ClosePlus(int ot)
{bool cl;
 for(int i=OrdersTotal()-1;i>=0;i--)
{if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderProfit()+OrderSwap()+OrderCommission()>0)
{if(OrderType()==0 && (ot==0 || ot==-1))
{RefreshRates();
 cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),10,White);}
if(OrderType()==1 && (ot==1 || ot==-1))
{RefreshRates();
 cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),10,White);}}}}}

void CloseMinus(int ot)
{bool cl;
 for(int i=OrdersTotal()-1;i>=0;i--)
{if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderProfit()+OrderSwap()+OrderCommission()<0)
{if(OrderType()==0 && (ot==0 || ot==-1))
{RefreshRates();
 cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),10,White);}
if(OrderType()==1 && (ot==1 || ot==-1))
{RefreshRates();
 cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),10,White);}}}}}

bool HLineCreate(string name,double price,color clr)
{//--- если цена не задана, то установим ее на уровне текущей цены Bid 
if(!price) 
   price=SymbolInfoDouble(Symbol(),SYMBOL_BID); 

   ResetLastError(); 

if(!ObjectCreate(0,name,OBJ_HLINE,0,0,price)) 
  {Print(__FUNCTION__,": не удалось создать горизонтальную линию! Код ошибки = ",GetLastError()); 
return(false);} 

   ObjectSetInteger(0,name,OBJPROP_COLOR,clr); 

   ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID); 

   ObjectSetInteger(0,name,OBJPROP_WIDTH,1); 

   ObjectSetInteger(0,name,OBJPROP_BACK,false); 

   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,true); 
   ObjectSetInteger(0,name,OBJPROP_SELECTED,true); 

   ObjectSetInteger(0,name,OBJPROP_HIDDEN,false); 

   ObjectSetInteger(0,name,OBJPROP_ZORDER,0); 

return(true);} 

bool HLineMove(string name,double price)
{if(!price) 
      price=SymbolInfoDouble(Symbol(),SYMBOL_BID); 

   ResetLastError(); 

if(!ObjectMove(0,name,0,0,price)) 
  {Print(__FUNCTION__,": не удалось переместить горизонтальную линию! Код ошибки = ",GetLastError()); 
return(false);} 

return(true);} 

int LastType()
{int type=-1;
datetime dt=0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
 if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
  {if(Symbol()==OrderSymbol() && OrderMagicNumber()==Magic) 
   {if(OrderOpenTime()>dt)
   {dt=OrderOpenTime();
    type=OrderType();}}}
return(type);}

double BuyPric() {
   double oldorderopenprice;
   int oldticketnumber;
   double unused = 0;
   int ticketnumber = 0;
   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
      bool clos=OrderSelect(cnt, SELE

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

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

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

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

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

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

Стоимость полного кода
1 485,90₽ ≈ $18.16