Взял код учета, открытия и закрытия ордеров из учебника(tradingexpert.mq4).Код предназначен для работы с одной позицией. Необходимо, чтобы позиций было пять.
Несколько видоизменив код, получилось сделать так (измененные строки выделены жирным), что позиции открываются в нужном количестве, но при смене закрывается только одна и сразу открывается противоположная позиция.
Как сделать так, чтобы при развороте закрывались все позиции, а затем только открывалась противоположная позиция?
// Учёт ордеров
Symb=Symbol(); // Название фин.инстр.
Total=0; // Количество ордеровfor(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:if (OrderSymbol()!=Symb)continue; // Не наш фин. инструмif (OrderType()>1) // Попался отложенный
{
Alert("Обнаружен отложенный ордер. Эксперт не работает.");
return; // Выход из start()
}
Total++; // Счётчик рыночн. ордif (Total>5) // Было не более одного орд, стало не более пяти
{
Alert("Несколько рыночных ордеров. Эксперт не работает.");
return; // Выход из start()
}
Ticket=OrderTicket(); // Номер выбранн. орд.
Tip =OrderType(); // Тип выбранного орд.
Price =OrderOpenPrice(); // Цена выбранн. орд.
SL =OrderStopLoss(); // SL выбранного орд.
TP =OrderTakeProfit(); // TP выбранного орд.
Lot =OrderLots(); // Количество лотов
}
}
// Открытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Total < 5 && Opn_B==true) // Открытых орд. нет +. Было Total < 1, стало Total < 5
{ // критерий откр. BuyRefreshRates(); // Обновление данных
SL=Bid - New_Stop(StopLoss)*Point; // Вычисление SL откр.
TP=Bid + New_Stop(TakeProfit)*Point; // Вычисление TP откр.Alert("Попытка открыть Buy. Ожидание ответа..");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buyif (Ticket > 0) // Получилось :)
{
Alert ("Открыт ордер Buy ",Ticket);
return; // Выход из start()
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
// Закрытие ордеровwhile(true) // Цикл закрытия орд.
{
if (Tip==0 && Cls_B==true) // Открыт ордер Buy..
{ //и есть критерий закрAlert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
RefreshRates(); // Обновление данных
Ans=OrderClose(Ticket,Lot,Bid,2); // Закрытие Buyif (Ans==true) // Получилось :)
{
Alert ("Закрыт ордер Buy ",Ticket);
break; // Выход из цикла закр
}
if (Fun_Error(GetLastError())==1) // Обработка ошибокcontinue; // Повторная попыткаreturn; // Выход из start()
}
Взял код учета, открытия и закрытия ордеров из учебника(tradingexpert.mq4).Код предназначен для работы с одной позицией. Необходимо, чтобы позиций было пять.
Несколько видоизменив код, получилось сделать так (измененные строки выделены жирным), что позиции открываются в нужном количестве, но при смене закрывается только одна и сразу открывается противоположная позиция.
Как сделать так, чтобы при развороте закрывались все позиции, а затем только открывалась противоположная позиция?
Сделайте Ticket массивом Ticket[5], храните в нем все 5 тикетов. При закрытии, соответственно, циклом по всем тикетам.
По уровню использования библиотек Вы не можете относиться к новичкам. Смотрел Ваш код, мне нужно недели две разбираться. Если не больше. Так что думаю что ответа Вы не получите
Витя, здесь ничего разбираться не нужно - человек хочет, чтобы глобальные переменные из одной "песочницы" (советник с его библиотеками) были видны в другой "песочнице" (компилируемая библиотека). :)))
Уважаемые прошу не критиковать а просто помочь и подсказать . я не крутой прогер а сборщик кодов .Так вот собрал индикатор (вижу что можно делать текстовую выкладку а не файлом т-так и сделаю для облегчения восприятия-
Он показывает сумму пунктов и динамику их суммирования в течении недели - на меньших ТФ-мах, если продолжает предыдущее движение от Close[i+2] до Close[i+1] то текущее движение Close[i] плюсуется, если против то минусуется. начало недели дает старт с нуля- в конце недели цикл заканчивается. не перерисовывается . надо как то прописать вместо понятия- закрытие бара-, чтобы программа видела- закрытие пятницы-, понимаю что это можно сделать с помощью DayOfWeek и цифры 5(номер пятницы) но как это сделать практически? помогите.
TarasBY: Витя, здесь ничего разбираться не нужно - человек хочет, чтобы глобальные переменные из одной "песочницы" (советник с его библиотеками) были видны в другой "песочнице" (компилируемая библиотека). :)))
Игорь, чутка не так! В "песочнице" (компилируемой библиотеке) только функции, а все переменные объявлены в инклюднике. А переменные, которые объявлены в инклюднике (включаемом файле) должны быть видны в сове, ведь я вставил инклюдник непосредственно в сову. Вы не согласны?
Уважаемые прошу не критиковать а просто помочь и подсказать . я не крутой прогер а сборщик кодов .Так вот собрал индикатор (вижу что можно делать текстовую выкладку а не файлом т-так и сделаю для облегчения восприятия-
Он показывает сумму пунктов и динамику их суммирования в течении недели - на меньших ТФ-мах, если продолжает предыдущее движение от Close[i+2] до Close[i+1] то текущее движение Close[i] плюсуется, если против то минусуется. начало недели дает старт с нуля- в конце недели цикл заканчивается. не перерисовывается . надо как то прописать вместо понятия- закрытие бара-, чтобы программа видела- закрытие пятницы-, понимаю что это можно сделать с помощью DayOfWeek и цифры 5(номер пятницы) но как это сделать практически? помогите.
Игорь, чутка не так! В "песочнице" (компилируемой библиотеке) только функции, а все переменные объявлены в инклюднике. А переменные, которые объявлены в инклюднике (включаемом файле) должны быть видны в сове, ведь я вставил инклюдник непосредственно в сову. Вы не согласны?
а при чём тогда упоминание про комплируемую библиотеку?
Нет не устроит. я обьясню - ваш форум это как надежда на последний грамотный оплот прогеров . и вставление размера - именно так и видит это написание PERIOD_W1 но ни использование размера ни использование фиксированных точек отсчета в виде дат не ладут никакого нужного эффекта . поэтому я и написал конкретный вопрос по вставлению конкретного понятия - пятницы - кстати ваш код не компилируеться пишет 'version' - unknown property ("версия " - неизвестное свойство ) так что если не знаете как вставить DayOfWeek и цифры 5(номер пятницы) в тот код который я дал другие варианты не помогут.
Vitek2010: Нет не устроит. я обьясню - ваш форум это как надежда на последний грамотный оплот прогеров . и вставление размера - именно так и видит это написание PERIOD_W1 но ни использование размера ни использование фиксированных точек отсчета в виде дат не ладут никакого нужного эффекта . поэтому я и написал конкретный вопрос по вставлению конкретного понятия - пятницы - кстати ваш код не компилируеться пишет 'version' - unknown property ("версия " - неизвестное свойство ) так что если не знаете как вставить DayOfWeek и цифры 5(номер пятницы) в тот код который я дал другие варианты не помогут.
В TimeDayOfWeek(Time[i]) задают вовсе не Time[i] а конкретную дату в формате D'2014.01.27' .
А если нужно определить какой сегодня день то вызывают просто DayOfWeek().
Уважаемые, нужна помощь.
Взял код учета, открытия и закрытия ордеров из учебника(tradingexpert.mq4). Код предназначен для работы с одной позицией. Необходимо, чтобы позиций было пять.
Несколько видоизменив код, получилось сделать так (измененные строки выделены жирным), что позиции открываются в нужном количестве, но при смене закрывается только одна и сразу открывается противоположная позиция.
Как сделать так, чтобы при развороте закрывались все позиции, а затем только открывалась противоположная позиция?
Уважаемые, нужна помощь.
Взял код учета, открытия и закрытия ордеров из учебника(tradingexpert.mq4). Код предназначен для работы с одной позицией. Необходимо, чтобы позиций было пять.
Несколько видоизменив код, получилось сделать так (измененные строки выделены жирным), что позиции открываются в нужном количестве, но при смене закрывается только одна и сразу открывается противоположная позиция.
Как сделать так, чтобы при развороте закрывались все позиции, а затем только открывалась противоположная позиция?
По уровню использования библиотек Вы не можете относиться к новичкам. Смотрел Ваш код, мне нужно недели две разбираться. Если не больше. Так что думаю что ответа Вы не получите
Уважаемые прошу не критиковать а просто помочь и подсказать . я не крутой прогер а сборщик кодов .Так вот собрал индикатор (вижу что можно делать текстовую выкладку а не файлом т-так и сделаю для облегчения восприятия-
Он показывает сумму пунктов и динамику их суммирования в течении недели - на меньших ТФ-мах, если продолжает предыдущее движение от Close[i+2] до Close[i+1] то текущее движение Close[i] плюсуется, если против то минусуется. начало недели дает старт с нуля- в конце недели цикл заканчивается. не перерисовывается . надо как то прописать вместо понятия- закрытие бара-, чтобы программа видела- закрытие пятницы-, понимаю что это можно сделать с помощью DayOfWeek и цифры 5(номер пятницы) но как это сделать практически? помогите.
Витя, здесь ничего разбираться не нужно - человек хочет, чтобы глобальные переменные из одной "песочницы" (советник с его библиотеками) были видны в другой "песочнице" (компилируемая библиотека). :)))
Игорь, чутка не так! В "песочнице" (компилируемой библиотеке) только функции, а все переменные объявлены в инклюднике. А переменные, которые объявлены в инклюднике (включаемом файле) должны быть видны в сове, ведь я вставил инклюдник непосредственно в сову. Вы не согласны?
Уважаемые прошу не критиковать а просто помочь и подсказать . я не крутой прогер а сборщик кодов .Так вот собрал индикатор (вижу что можно делать текстовую выкладку а не файлом т-так и сделаю для облегчения восприятия-
Он показывает сумму пунктов и динамику их суммирования в течении недели - на меньших ТФ-мах, если продолжает предыдущее движение от Close[i+2] до Close[i+1] то текущее движение Close[i] плюсуется, если против то минусуется. начало недели дает старт с нуля- в конце недели цикл заканчивается. не перерисовывается . надо как то прописать вместо понятия- закрытие бара-, чтобы программа видела- закрытие пятницы-, понимаю что это можно сделать с помощью DayOfWeek и цифры 5(номер пятницы) но как это сделать практически? помогите.
Так устроит?
Игорь, чутка не так! В "песочнице" (компилируемой библиотеке) только функции, а все переменные объявлены в инклюднике. А переменные, которые объявлены в инклюднике (включаемом файле) должны быть видны в сове, ведь я вставил инклюдник непосредственно в сову. Вы не согласны?
Так устроит?
Нет не устроит. я обьясню - ваш форум это как надежда на последний грамотный оплот прогеров . и вставление размера - именно так и видит это написание PERIOD_W1 но ни использование размера ни использование фиксированных точек отсчета в виде дат не ладут никакого нужного эффекта . поэтому я и написал конкретный вопрос по вставлению конкретного понятия - пятницы - кстати ваш код не компилируеться пишет 'version' - unknown property ("версия " - неизвестное свойство ) так что если не знаете как вставить DayOfWeek и цифры 5(номер пятницы) в тот код который я дал другие варианты не помогут.
В TimeDayOfWeek(Time[i]) задают вовсе не Time[i] а конкретную дату в формате D'2014.01.27' .
А если нужно определить какой сегодня день то вызывают просто DayOfWeek().
В TimeDayOfWeek(Time[i]) задают вовсе не Time[i] а конкретную дату в формате D'2014.01.27' .
А если нужно определить какой сегодня день то вызывают просто DayOfWeek().