GOLD HITS
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «gold hits.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
GOLD HITS — торговый советник для MetaTrader 4, предназначенный для одновременной работы на покупку и продажу. При запуске он открывает начальные позиции BUY и SELL с заданным лотом, а затем наращивает позиции по принципу мартингейла: при движении цены в нужном направлении открываются дополнительные ордера на определённом расстоянии в пунктах с увеличением лота по множителю. Советник также управляет уровнями тейк-профита на открытых позициях и может отображать информацию о состоянии счёта на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| Magic Number (magic) | Магический номер — Магический номер для идентификации ордеров советника |
| Lot Started (lot_initial) | Начальный лот — Начальный лот для первых позиций BUY и SELL |
| Multiplier (multiplier) | Множитель лота — Множитель для увеличения лота при каждом новом слое |
| TakeProfit (Pips) (takeprofit) | Тейк-профит (пункты) — Тейк-профит в пунктах для открытых позиций |
| Distance Open Position (Pips) (distance_pips) | Расстояние открытия позиции (пункты) — Расстояние в пунктах для открытия следующего слоя позиции |
| Max Position(layer) Per Side (maxlayer) | Максимум позиций (слоёв) на сторону — Максимальное количество позиций в одном направлении |
| Info's Text Color (kolor_display) | Цвет текста информации — Цвет текста информационных надписей на графике |
| Font Size (fontsize) | Размер шрифта — Размер шрифта информационных текстов на графике |
Поиск по коду файла
#property version "1.5"
#property strict
#property description " GOLD HITS"
string EA;
string EA1 = "GOLD HITS"; // 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 = 50; // TakeProfit (Pips)
extern int distance_pips = 20; // Distance Open Position (Pips)
extern int maxlayer = 100; // Max Position(layer) Per Side
bool display_info = false; // 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() == Symbol())
if(OrderMagicNumber() == magicПоказано первые 50% кода (символов: 8681)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.