igrok333: о. я не знал что его можно так использовать.
я думал OrderClosePrice() можно взять только у закрытой сделки.
в справке про это ничего нет)
Недокументированная возможность. Но там есть некоторые условности. Сейчас не вспомню какие. Нужно Алексея @Alexey Viktorov спросить - он недавно писал о них.
Недокументированная возможность. Но там есть некоторые условности. Сейчас не вспомню какие. Нужно Алексея @Alexey Viktorov спросить - он недавно писал о них.
а что по этому коду?
переменная не инициилизируется сразу нулем?
void zakritj_vse_sdelki()
{
bool pr;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if (OrderType()==OP_BUY) pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 30 );
if (OrderType()==OP_SELL) pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 30 );
if (pr==false) Print("закрытие ордера ", OrderSymbol() ," завершилось с ошибкой #",GetLastError());
if (pr==true) Print("ордер ", OrderSymbol() , " ЗАКРЫТ");
}
}
}
Недокументированная возможность. Но там есть некоторые условности. Сейчас не вспомню какие. Нужно Алексея @Alexey Viktorov спросить - он недавно писал о них.
Это было так давно... но всё-же получилось найти. Ренат доступно объясняет почему нежелательно. Но всё-же на мой взгляд ничего страшного. Проблема может возникнуть тогда когда на закрытие ордера получили реквоту. Если в запросе ставим цену Ask или Bid то всегда можно обновить цены и повторить попытку. А в случае указания цены закрытия OrderClosePrice() придётся повторно выбирать ордер с целью обновить данные по ордеру.
Подскажите пожалуйста! Читаю данные из CSV файла, в том числе столбец с ценой с разделителем разряда "." (1.22426) через FileReadString(handle), далее через функцию StrToDouble, все ОК. Но есть столбец тоже с ценой, но уже с разделителем "," (1,22426) и его уже StrToDouble не считывает. Как быть, если нет возможности менять запятую на точку в самом CSV ?
Подскажите пожалуйста! Читаю данные из CSV файла, в том числе столбец с ценой с разделителем разряда "." (1.22426) через FileReadString(handle), далее через функцию StrToDouble, все ОК. Но есть столбец тоже с ценой, yо уже с разделителем "," (1,22426) и его уже StrToDouble не считывает. Как быть если нет возможности менять запятую на точку в самом CSV ?
int StringReplace( string&str, // строка, в которой будет осуществляться замена const stringfind, // искомая подстрока const stringreplacement// подстрока, которая будет вставлена в найденные места );
int StringReplace( string&str, // строка, в которой будет осуществляться замена const stringfind, // искомая подстрока const stringreplacement// подстрока, которая будет вставлена в найденные места );
Спасибо!) , переменную Cena=FileReadString(handle); вставляю в функцию Separator=StringReplace(Сena,",","."); пишет ошибку "implicit conversion from number to string" -
не хочет читать значение с разделителем "," (1,22426) как строку, и StringReplace не срабатывает. Или я неправильно действую?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Можно. Но осторожно. У открытой позиции он возвращает цену её закрытия. Соответственно: для Buy - Bid, для Sell - Ask
я думал OrderClosePrice() можно взять только у закрытой сделки.
в справке про это ничего нет)
о. я не знал что его можно так использовать.
я думал OrderClosePrice() можно взять только у закрытой сделки.
в справке про это ничего нет)
Недокументированная возможность. Но там есть некоторые условности. Сейчас не вспомню какие. Нужно Алексея @Alexey Viktorov спросить - он недавно писал о них.
Недокументированная возможность. Но там есть некоторые условности. Сейчас не вспомню какие. Нужно Алексея @Alexey Viktorov спросить - он недавно писал о них.
переменная не инициилизируется сразу нулем?
а что по этому коду?
переменная не инициилизируется сразу нулем?
Нельзя уповать на умолчания. Лучше сразу при объявлении локальной переменной озаботиться её значением: bool pr=false;
А вообще, конечно излишне её там задавать. Достаточно проверять что возвращает функция:
if(!OrderClose()) Print("Бяка");
Как узнать цену веера фибоначи на предыдущей свече? MQL5
ObjectGetValueByTime() не работает, возвращает то 0, то хай, то лоу свечи
@Artyom Trishkin
Добрый день. Пожалуйста, помогите. подскажите, в чем дело с моим индикатором. Я не понимаю, почему вообще ничего не рисует.
https://www.mql5.com/ru/forum/224805#comment_6372281
Недокументированная возможность. Но там есть некоторые условности. Сейчас не вспомню какие. Нужно Алексея @Alexey Viktorov спросить - он недавно писал о них.
Это было так давно... но всё-же получилось найти. Ренат доступно объясняет почему нежелательно. Но всё-же на мой взгляд ничего страшного. Проблема может возникнуть тогда когда на закрытие ордера получили реквоту. Если в запросе ставим цену Ask или Bid то всегда можно обновить цены и повторить попытку. А в случае указания цены закрытия OrderClosePrice() придётся повторно выбирать ордер с целью обновить данные по ордеру.
Вывод: Если нельзя, но очень нужно, то можно.
Подскажите пожалуйста! Читаю данные из CSV файла, в том числе столбец с ценой с разделителем разряда "." (1.22426) через FileReadString(handle), далее через функцию StrToDouble, все ОК. Но есть столбец тоже с ценой, но уже с разделителем "," (1,22426) и его уже StrToDouble не считывает. Как быть, если нет возможности менять запятую на точку в самом CSV ?
Подскажите пожалуйста! Читаю данные из CSV файла, в том числе столбец с ценой с разделителем разряда "." (1.22426) через FileReadString(handle), далее через функцию StrToDouble, все ОК. Но есть столбец тоже с ценой, yо уже с разделителем "," (1,22426) и его уже StrToDouble не считывает. Как быть если нет возможности менять запятую на точку в самом CSV ?
FileReadString
а потом можете поменять с запятой на точку:
StringReplace
Заменяет в строке все найденные подстроки на заданную последовательность символов.
int StringReplace(
string& str, // строка, в которой будет осуществляться замена
const string find, // искомая подстрока
const string replacement // подстрока, которая будет вставлена в найденные места
);
FileReadString
а потом можете поменять с запятой на точку:
StringReplace
Заменяет в строке все найденные подстроки на заданную последовательность символов.
int StringReplace(
string& str, // строка, в которой будет осуществляться замена
const string find, // искомая подстрока
const string replacement // подстрока, которая будет вставлена в найденные места
);
Спасибо!) , переменную Cena=FileReadString(handle); вставляю в функцию Separator=StringReplace(Сena,",","."); пишет ошибку "implicit conversion from number to string" -
не хочет читать значение с разделителем "," (1,22426) как строку, и StringReplace не срабатывает. Или я неправильно действую?