Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 414
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
плюется
possible loss of data due to type conversion .mq4 1697 29
тип Добле у СЛ.
Компилятор нонче строгий стал, надо вот так, MarketInfo возвращает тип double
Компилятор нонче строгий стал, надо вот так, MarketInfo возвращает тип double
переменная "сумбол" правильно , она у меня как переменная в обертке модификатора.
Спс вставил (int) и все гуд.
А как раньше я незнаю мой стаж в написание советников 21 день))
И мой советник упорно рвется в топ бесплатных))
Leanid Aladzyeu:
А как раньше я незнаю мой стаж в написание советников 21 день)) И мой советник упорно рвется в топ бесплатных))
Ну тогда сильно повезло, до 600-й версии старый MQL4 был ужасен )) Кинь ссылку на советник плз, можно в личку
Почему то выдает ошибку на последнюю строку.
'}' - not all control paths return a value Expert4.mq4
каждая не-void функция должна заканчиваться оператором return.
Просто я по видео уроку смотрю этот код а он может под стары билд.
#includ#include <stderror.mqh>
//+------------------------------------------------------------------+//| Expert4.mq4 |
//| Mikhail |
//| |
//+------------------------------------------------------------------+
#property copyright "Mikhail"
#property link ""
#property version "1.00"
#property strict
int signal = 1;
int start()
{
if (signal == 1)
{
OrderSendX (Symbol(), OP_BUY, 0.2, Ask, 30, 0, 0, "Test", 123, 0, Blue);
}
return(0);
}
//+------------------------------------------------------------------+
int OrderSendX (string symbol, int cmd, double volume, double price, int slippage,double stoploss,
double takeprofit, string comment=NULL, int magic=0, datetime expiration=0,color arrow_color=CLR_NONE)
{
int err = GetLastError();
err = 0;
bool exit_loop = false;
int ticket = -1;
int Retry = 10;
int cnt = 0;
if (cmd == OP_BUY || cmd == OP_SELL)
{
while(!exit_loop)
{
ticket = OrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment,magic, expiration, arrow_color);
err = GetLastError();
switch(err)
{
case ERR_NO_ERROR:
exit_loop = true;
break;
case ERR_SERVER_BUSY:
case ERR_NO_CONNECTION:
case ERR_INVALID_PRICE:
case ERR_OFF_QUOTES:
case ERR_BROKER_BUSY:
case ERR_TRADE_CONTEXT_BUSY:
cnt++;
break;
case ERR_PRICE_CHANGED:
RefreshRates();
continue;
default:
exit_loop +true;
break;
}
if (cnt> Retry)
exit_loop = true;
if (!exit_loop)
{
Sleep(1000);
RefreshRates();
}
else
{
if(err != ERR_NO_ERROR)
{
Print ("ERROR: " + err);
}
}
if(err == ERR_NO_ERROR)
{
OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES);
return(ticket);
}
Print("Error: order open failed after" + cnt + "atempts");
return(-1);
}//while
}//if
}//exit
Вот....
}
}
return(ticket);
}
Правильно вставляем код на форуме
Почему то выдает ошибку на последнюю строку.
'}' - not all control paths return a value Expert4.mq4
каждая не-void функция должна заканчиваться оператором return.
Просто я по видео уроку смотрю этот код а он может под стары билд.
#includ#include <stderror.mqh>
//+------------------------------------------------------------------+//| Expert4.mq4 |
//| Mikhail |
//| |
//+------------------------------------------------------------------+
#property copyright "Mikhail"
#property link ""
#property version "1.00"
#property strict
int signal = 1;
int start()
{
if (signal == 1)
{
OrderSendX (Symbol(), OP_BUY, 0.2, Ask, 30, 0, 0, "Test", 123, 0, Blue);
}
return(0);
}
//+------------------------------------------------------------------+
int OrderSendX (string symbol, int cmd, double volume, double price, int slippage,double stoploss,
double takeprofit, string comment=NULL, int magic=0, datetime expiration=0,color arrow_color=CLR_NONE)
{
int err = GetLastError();
err = 0;
bool exit_loop = false;
int ticket = -1;
int Retry = 10;
int cnt = 0;
if (cmd == OP_BUY || cmd == OP_SELL)
{
while(!exit_loop)
{
ticket = OrderSend(symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment,magic, expiration, arrow_color);
err = GetLastError();
switch(err)
{
case ERR_NO_ERROR:
exit_loop = true;
break;
case ERR_SERVER_BUSY:
case ERR_NO_CONNECTION:
case ERR_INVALID_PRICE:
case ERR_OFF_QUOTES:
case ERR_BROKER_BUSY:
case ERR_TRADE_CONTEXT_BUSY:
cnt++;
break;
case ERR_PRICE_CHANGED:
RefreshRates();
continue;
default:
exit_loop +true;
break;
}
if (cnt> Retry)
exit_loop = true;
if (!exit_loop)
{
Sleep(1000);
RefreshRates();
}
else
{
if(err != ERR_NO_ERROR)
{
Print ("ERROR: " + err);
}
}
if(err == ERR_NO_ERROR)
{
OrderSelect(ticket, SELECT_BY_TICKET,MODE_TRADES);
return(ticket);
}
Print("Error: order open failed after" + cnt + "atempts");
return(-1);
}//while
}//if
}//exit
Правильно вставляем код на форуме
Опять лагаю не вставляется
Все нормально вставляется, у вас какой браузер? Попробуйте сменить на другой. У меня FFox. Я в комментах в коде в самом конце дал ответ.