[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 529
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
вот как выглядит сейчас:
//+------------------------------------------------------------------+
//| mo_bidir.mq4 |
//| Works best in 5M timeframe |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010 - Monu Ogbe"
#define MAGIC 1234
#define IDENT "mo_bidir"
extern double lots = 1;
extern double stop_loss = 76; //
extern double take_profit = 750; //
extern int steps = 5;// Шаг отложенных ордеров
int start(){
if (OrdersTotal() == 0){
OrderSend(Symbol(), OP_BUY, lots,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Blue);
OrderSend(Symbol(), OP_SELL, lots,Bid, 3, Bid + take_profit * Point, Ask - take_profit * Point, IDENT, MAGIC, 0, Red);
OrderSend(Symbol(), OP_BUYSTOP, 0.5*lots,Ask+steps*Point, 3, Ask - stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Blue);
OrderSend(Symbol(), OP_SELLSTOP, 0.5*lots,Bid-steps*Point, 3, Bid + take_profit * Point, Ask - take_profit * Point, IDENT, MAGIC, 0, Red);
}
return(0);
}
Ищу код безубытка по истории. мож у кого есть. поделитесь.
у меня есть код безубытка, но он работает изходя из открытых ордеров.
у меня советник закрывает убыточную при противоположном сигнале, и открывает по сигнал. и вот нужно что бы этот код безубытка запомнил сколько в минусе и передал информацию дальше, что бы второй и т.д. ордера уже видели на графике линию нуля по прибыли с учетом предыдущих убытков. Стопов у советника нету. а значит закрытие минусовой сделки не по стоплоссу.
проще паренной репы, делаете общий графический элемент - горизонтальная линия, цена этой линии и будет та цена которая вам нужна. каждый раз двигайте ее на нужную цену (безубыток с закрытием), и не удаляйте ее (линию) при закрытии ордера, в следующем ордере смотрите в ней ту старую цену
Ищу код безубытка по истории. мож у кого есть. поделитесь.
у меня есть код безубытка, но он работает изходя из открытых ордеров.
у меня советник закрывает убыточную при противоположном сигнале, и открывает по сигнал. и вот нужно что бы этот код безубытка запомнил сколько в минусе и передал информацию дальше, что бы второй и т.д. ордера уже видели на графике линию нуля по прибыли с учетом предыдущих убытков. Стопов у советника нету. а значит закрытие минусовой сделки не по стоплоссу.
проще паренной репы, делаете общий графический элемент - горизонтальная линия, цена этой линии и будет та цена которая вам нужна. каждый раз двигайте ее на нужную цену (безубыток с закрытием), и не удаляйте ее (линию) при закрытии ордера, в следующем ордере смотрите в ней ту старую цену
проще та не проще.
у меня не получается реализовать самому.
мне важно, что бы линия появлялась при убыточных сделках, что бы я мог закрываться при ее достижении. закрытие я то реализую. а вот саму логику правильности создания кода все ни как не могу уловить.
тоесть мне нужна линия, которая будет рисоваться только, когда есть убыточные ордера, а эта линия будет исходить из лота у открытой сделки и предыдущей истории по убыточным сделкам.Если я правильно понял, то составляющей Вашего вопроса является учет общего убытка при закрытых подряд убыточных сделках Вашего советника для последующего его сравнения с уровнем профита по текущим рыночным ордерам для установки линии б/у?
у меня линий стопов нет, тоесть нет стоплосса и нет тейк профита.
я хочу видеть линию цены, куда нужно прийти что бы закрыть сделку в таком плюче, что бы предыдущие закрытые ордера убытточные были перекрыты.
мне нужен блок за блоком start, который будет вести подсчет и пердавать информацию в блок start, а там уже в блоке start я буду использовать эту инормацию для закрытия сделки по достижению цены этой линии. закрытие я сам организую. а вот сам блок безубытка по истории не получается у меня написать.
ВАм нужна глобальная переменная, сделайте ее в глобальных Терминала, или граф объектом - тогда она будет видна только на этом графике, пишите ее в файл если надо, ну или в реестр, или в память напрямую. Вариантов много.
Вот мой участок кода - отвечающий за учет общего убытка последовательных убыточных сделок именно этого эксперта (в соответствии с магиком). Я его сделал для своего варианта неттинговой Лавины - правьте под свои нужды - код закомментирован...
Глобальные переменные
int start() // -----------------------СТАРТ ЭКСПЕРТА--------------- { //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- Iteration = 0; // зануляем инерации перед их учетом в цикле по истории Sum_Loss = 0; // суммарный убыток по этим итерациям datetime Time_at_History_Current = 0, Time_at_History_Previos = 0; if(OrdersHistoryTotal() != 0) { for(int counter = OrdersHistoryTotal()-1; counter >= 0; counter--) { OrderSelect(counter, SELECT_BY_POS, MODE_HISTORY); if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if(OrderType() == OP_BUY || OrderType() == OP_SELL) { if(OrderProfit() < 0) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера // для последующего его анализа при подсчете количества итераций { double lastLoss = OrderProfit(); Sum_Loss=Sum_Loss+lastLoss; // считаем общий убыток по закрытым подряд убыточным ордерам Time_at_History_Current = OrderCloseTime(); } //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS)); //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS)); if(Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными { Time_at_History_Previos = Time_at_History_Current ; Iteration++; //Print("Iteration at History в условии сравнения = ", Iteration); } else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла { if(OrderProfit() >= 0) break; } } } } } //Print("Iteration at History = ", Iteration, " Time_at_History_Current = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS), // " Time_at_History_Previos = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS)); ... ... }// конец стартПосле этого участка кода - также идете циклом уже по открытым ордерам именно этого советника и считаете их общий профит. После чего сравниваете это значение с переменной
и принимаете решение.
Ищу код безубытка по истории. мож у кого есть. поделитесь.
у меня есть код безубытка, но он работает изходя из открытых ордеров.
у меня советник закрывает убыточную при противоположном сигнале, и открывает по сигнал. и вот нужно что бы этот код безубытка запомнил сколько в минусе и передал информацию дальше, что бы второй и т.д. ордера уже видели на графике линию нуля по прибыли с учетом предыдущих убытков. Стопов у советника нету. а значит закрытие минусовой сделки не по стоплоссу.
Подсчитайте суммарный профит по всем закрытым сделкам и сохраните его в какой нибудь переменной, например, TotalCloseProfit. А далее с помощью нижеприведенного куска кода, без всякой графики и прочих лишних наворотов:
Посмотрел я журнал.
похоже это причина, только что она означает я не знаю. Кто нибудь объяснит? И как ее исправить?