[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 630
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
На данный момент у меня такая функция торговая:
Модификация не происходит.
У вас в функции Trade () ордер не выбран.
Совсем не понял, чего вы хотите от скрипта.
Нужна программа, при запуске которой в архивных графиках
визуально обозначатся участки движения цены с заданными параметрами по силе движения и времени этого движения.
Например - коррекция в 400 пунктов, совершенная за 30 минут. И так за весь прошедший год, все коррекции с этим диапазоном.
Визуально их высматривать, вручную - невозможно. Искажения. Хотелось бы с цветовым обозначением, чтобы сразу - в глаза.
___
Я смотрел, есть разные проги "Histoty". Но они выполняют визуализацию только истории счета.
А вот чтобы отрезок цены по заданным фильтрам - не нашел.
У вас в функции Trade () ордер не выбран.
Есть такое. Вот исправил.
А функция модификации вот:
Странно Но стопов и тейков на выходе нет опять таки.
Нужна программа, при запуске которой в архивных графиках
визуально обозначатся участки движения цены с заданными параметрами по силе движения и времени этого движения.
Например - коррекция в 400 пунктов, совершенная за 30 минут. И так за весь прошедший год, все коррекции с этим диапазоном.
Визуально их высматривать, вручную - невозможно. Искажения. Хотелось бы с цветовым обозначением, чтобы сразу - в глаза.
___
Я смотрел, есть разные проги "Histoty". Но они выполняют визуализацию только истории счета.
А вот чтобы отрезок цены по заданным фильтрам - не нашел.
History, History_Draw - они работают навроде советников при тестировании.
Вот нужно что-то в этом роде, чтобы смотреть коррекции в истории по заданным параметрам
Проблема с Symbol() MT4:
2 функции для иллюстрации:
Исполнение первой выводит пустую строку:
А вот вторая функция строковый идентификатор "EURUSD" (ну, зависит от графика, но выводи, хотя по логике функции должна быть пустая строка):
Помогите понять, что не так? Спасибо
У вас в функции Trade () ордер не выбран.
Кстати. А какой смысл в функции Trade() выбирать ордер? Я же вызываю функцию OrdersModifying() в которой ордера выбираются и там модифицируются. Т.е. первоначальный вариант был верен!
Есть такое. Вот исправил.
А функция модификации вот:
Странно Но стопов и тейков на выходе нет опять таки.
OrderSelect(g_ticket,SELECT_BY_TICKET) перед строкой if(OrderStopLoss() == 0 || OrderTakeProfit() == 0)
History, History_Draw - они работают навроде советников при тестировании.
Вот нужно что-то в этом роде, чтобы смотреть коррекции в истории по заданным параметрам
В истории или на графике? В каком виде вы хотите видеть результат? в окне чарта, в отдельном окне , распечатанным в виде таблицы, если да то с какими именно данными, в виде свечей другого цвета, в виде линий, соединяющих начало и конец движения?Напишите конкретнее, и когда будет время, я вам его сделаю.
OrderSelect(g_ticket,SELECT_BY_TICKET) перед строкой if(OrderStopLoss() == 0 || OrderTakeProfit() == 0)
Вот я так сделал:
Стопов и тейков нет. В журнале пишится ошибка 130, мол не верный стопы. Причины я не наблюдаю.
Вот я так сделал:
Стопов и тейков нет. В журнале пишится ошибка 130, мол не верный стопы. Причины я не наблюдаю.
Без ифа, просто OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES);, и можете оставить в OrdersModifying()
//+------------------------------------------------------------------+
void OrdersModifying()
{
OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES);
if(g_type == OP_BUY)
{
if(i_sl != 0)sl = NormalizeDouble(OrderOpenPrice() - i_sl*pt,Digits); // Если входной параметр стоп-лосса не равен 0, то..
// Получаем значение стоп-лосса для выбранного ордера
if(i_tp != 0)tp = NormalizeDouble(OrderOpenPrice() + i_tp*pt,Digits); // Если входной параметр тейкпрофита не равен 0, то..
// Получаем значение тейкпрофита для выбранного ордера
}
if(g_type == OP_SELL)
{
if(i_sl != 0)sl = NormalizeDouble(OrderOpenPrice() + i_sl*pt,Digits); // Если входной параметр стоп-лосса не равен 0, то..
// Получаем значение стоп-лосса для выбранного ордера
if(i_tp != 0)tp = NormalizeDouble(OrderOpenPrice() - i_tp*pt,Digits); // Если входной параметр тейкпрофита не равен 0, то..
// Получаем значение тейкпрофита для выбранного ордера
}
if(sl != 0 || tp != 0) // Если полученные значения sl и tp не равныы 0, то..
{
OrderModify(OrderTicket(),OrderOpenPrice(),sl,tp,OrderOpenTime() + 86400,Lime); // Модифицируем ордер
}
}