Исходный код · ID 3573
robot_wti ea.mq4
Похожие материалы по тегам
Вы автор или правообладатель?
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «robot_wti ea.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Поиск по коду файла
#property version "1.00"
#property strict
extern string identifier = "WTI";
extern string din = "Lot for 1000";
extern double lot = 0.005;
extern double percent_close = 1;
extern string _grid = "Grid settings";
extern string t1 ="--------------------------------------";
extern int step = 100;
extern int indent_open = 0;//отступ для калибровки открытия
extern int indent = 0;//отступ для калибровки тейк-профита
extern int pogr = 0;//погрешность по рынку
extern string t2 ="--------------------------------------";
/*
Сетку запускаем, когда цена Bid делится без остатка на step.
После этого открываем два встречных ордера по рынку и открываем уровни сетки.
Триггер на открытие доп уровня: бай!=селл.
Корректируем крайние графицы сетки и внутренние границы сетки, когда срабатывает триггер.
*/
extern string t13 ="--------------------------------------";
extern string _magic = "Unique number";
extern int magic = 1;
double pp;
int dd;
int digits;
int kol;
int kol2;//для отложенных
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
}
double value_profit()
{
double ld_0 = 0;
int l_ord_total_8 = OrdersTotal();
if (l_ord_total_8 > 0)
{
for (int l_pos_12 = l_ord_total_8 - 1; l_pos_12 >= 0; l_pos_12--)
{
if (OrderSelect(l_pos_12, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == magic)
ld_0 += OrderProfit() + OrderSwap() + OrderCommission();
}
}
}
return(ld_0);
}
void CloseAll()
{
bool b;
int total = OrdersTotal() - 1;
for (int i = total; i >= 0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == magic)
{
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
{
b = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 20, Blue); // Закрытие рыночного ордера
} else{
b = OrderDelete(OrderTicket()); // Удаление отложенного ордера
}
}
}
}
}
int check() {
int kol_ = 0;
kol2 = 0;
int total = OrdersTotal(); // Получаем общее количество ордеров
for (int i = 0; i < total; i++) {
if (OrderSelect(i, SELECT_BY_POS)) {
if (OrderMagicNumber() == magic) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
kol_++; // Увеличиваем счетчик для открытых ордеров
}
}
}
}
for (int i = 0; i < total; i++) {
if (OrderSelect(i, SELECT_BY_POS)) {
if (OrderMagicNumber() == magic) {
if (OrderType() == OP_BUYLIMIT || OrderType() == OP_SELLLIMIT ||
OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP) {
kol_++; // Увеличиваем счетчик для отложенных ордеров
kol2++;
}
}
}
}
return(kol_);
}
double sum_lot()
{
double balance_=GlobalVariableGet(identifier+"_balance");
int roundedValue = (int)MathRound(balance_/1000);
return(lot*roundedValue);
}
int start()
{
// код доступен только после оплаты
}
double profit, total_lot;
int Ticket;
double bid =MarketInfo(Symbol(),MODE_BID);
double ask =MarketInfo(Symbol(),MODE_ASK);
kol=check();
if (kol==0)
{
GlobalVariableSet(identifier+"_balance",AccountBalance());
GlobalVariableSet(identifier+"_itime",TimeCurrent());
GlobalVariableSet(identifier+"_start_price",Bid);
GlobalVariableSet(identifier+"_kol_pos2",0);
total_lot=sum_lot();
double takeProfit = NormalizeDouble(ask + step * pp + indent * pp, digits);
Ticket=OrderSend(Symbol(), OP_BUYLIMIT, NormalizeDouble(total_lot,2), NormalizeDouble(ask,digits)- step/2 * pp, 30, 0, /*buyLimit+takeProfit_buy*/0, "", magic, 0, clrBlue);
takeProfit = NormalizeDouble(bid - stПоказано первые 50% кода (символов: 6091)
Что вы получите после оплаты
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? Адрес передаётся вместе с заказом в магазин и сохраняется для связи заказа с оплатой. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.
Стоимость полного кода: 609 ₽ (≈ $7.19 USDT)