Форум » Стратегии, функции. » просьба изменить советника » Ответить

просьба изменить советника

RUSA: С НОВЫМ ГОДОМ Если можно поменяйте пожалуйста в этом советнике условия бай и селл .Надо чтобы покупка или продажа открывалась сразу согласно тому что цена изменится с начало дня например на 50 пунктов. То есть бай или селл открывались по той цене которая в данный момент. спасибо //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж // First_day_price.mq4 Пример простого эксперта. // Стратегия запрограммирована по тех.заданию заказчика. // Сергей Ковалёв, Днепропетровск, sk@autograf.dp.ua, ICQ 64015987, http://autograf.dp.ua //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 1 жж // Внешние переменные extern double Lot= 0.1; // Значение лотов extern int SL = 100; // StopLoss (пунктов) extern int TP = 50; // TakeProfit (пунктов) extern int Delta_Price = 50; // Отклонение цены от цены откр. дня //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 2 жж int start() { //================================================================================== 3 == string Symb = Symbol(); // Название финансового инструмента int Spread = Ask - Bid; // Текущий размер спреда int StopLevel = NormalizeDouble(MarketInfo(Symb, MODE_STOPLEVEL),0);// Текущ.StopLevel if (SL > 0 && SL < StopLevel) // Если заказанный StopLoss меньше .. SL = StopLevel; // допустимого, то увеличиваем if (TP > 0 && TP < StopLevel) // Если заказанный TakeProfit меньше.. TP = StopLevel; // допустимого, то увеличиваем //---------------------------------------------------------------------------------- 4 -- datetime Day_Opn_Time = iTime(Symb,PERIOD_D1,0);// Время открытия сегодняшнего дня double Day_Opn = iOpen(Symb,PERIOD_D1,0);// Цена открытия сегодняшнего дня double Day_High = iHigh(Symb,PERIOD_D1,0);// Максимум сегодняшнего дня double Day_Low = iLow (Symb,PERIOD_D1,0);// Минимум сегодняшнего дня int Crit = -1; // Пока считаем, что критериев для открытия нет //================================================================================== 5 == int Total = OrdersTotal(); // Общее количество ордеров for(int i=Total-1; i>=0; i--) // Цикл перебора ордеров { if (OrderSelect(i,SELECT_BY_POS)==true) // Если есть следующий { // Анализ ордеров: if (OrderSymbol() != Symb || // Ордер открыт по другому инструм. .. OrderOpenTime()>= Day_Opn_Time ) // .. или ордер открыт сегодня.. continue; // .. то закрывать этот ордер не будем int Tip_Ord = OrderType(); // Тип выбранного ордера int Ticket = OrderTicket(); // Номер ордера //---------------------------------------------------------------------------------- 6 -- if (Tip_Ord==0) // Если это ордер Buy, то.. { double Ord_Lots=NormalizeDouble(OrderLots(),2);// Количество лотов OrderClose(Ticket, Ord_Lots, Bid, 3); // Закрытие текущего Sell continue; // Переход на новую итерцию } if (Tip_Ord==1) // Если это ордер Sell, то.. { Ord_Lots=NormalizeDouble(OrderLots(),2);// Количество лотов OrderClose(Ticket, Ord_Lots, Ask, 3); // Закрытие текущего Sell continue; // Переход на новую итерцию } OrderDelete(Ticket); // Если это отложенный ордер, удаляем } } //---------------------------------------------------------------------------------- 7 -- if (Total > 0) // Если есть ордера.. return; // .. уходим //================================================================================== 8 == double StLs = 0.0; // Желаемая цена StopLoss ордера double TkPr = 0.0; // Желаемая цена TakeProfit ордера StopLevel = StopLevel*Point; // Минимальная дистаниция в пунктах //---------------------------------------------------------------------------------- 9 -- if (NormalizeDouble(Day_Opn - Day_Low - 50*Point,Digits) >= 0.0) // Саботало условие { // Нужно устанавливать BuyStop double Opn = Day_Opn + Spread; // Желаемая цена отложенного ордера if (NormalizeDouble(Opn - Ask - StopLevel*Point,Digits) < 0.0)//Цена не вписывается Opn = Ask + StopLevel; // Ближайшая возможная цена if (SL > 0) // Задана ненулевая цена StopLoss .. StLs = Opn - SL*Point; // .. желаемая цена StopLoss ордера if (TP > 0) // Задана ненулевая цена TakeProfit .. TkPr = Opn + TP*Point; // .. желаемая цена TakeProfit ордера Ticket=OrderSend(Symb,OP_BUYSTOP,Lot,Opn,2,StLs,TkPr);// Установка BuyStop } //--------------------------------------------------------------------------------- 10 -- if (NormalizeDouble(Day_High - Day_Opn- 50*Point,Digits) >= 0.0) // Саботало условие { // Нужно устанавливать SellStop Opn = Day_Opn; // Желаемая цена отложенного ордера if (NormalizeDouble(Bid - StopLevel*Point - Opn,Digits) < 0.0)//Цена не вписывается Opn = Bid - StopLevel; // Ближайшая возможная цена if (SL > 0) // Задана ненулевая цена StopLoss .. StLs = Opn + SL*Point; // .. желаемая цена StopLoss ордера if (TP > 0) // Задана ненулевая цена TakeProfit .. TkPr = Opn - TP*Point; // .. желаемая цена TakeProfit ордера Ticket=OrderSend(Symb,OP_SELLSTOP,Lot,Opn,2,StLs,TkPr);// Установка SellStop } //================================================================================= 11 == return; // Уходим } //жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж Конец модуля жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж 12 жж

Ответов - 6

SK: Насколько я помню, этот советник впервые появился здесь http://forums.forextrade.ru/index.php?showtopic=3983. Давайте там и продолжим разговор по его усовершенствованию.

ALEXses: Здравствуйте Сергей.У меня такая просьба,я не разбираюсь в программировании,немогли бы Вы мне выложить какую-нибудь прибыльную стратегию для Афтографа был бы очень вам признателен.Вобщем Афтограф интересная штука,пока тестирую!Заранее благодарен.

SK: Прибылная стратегия - это большая редкость. На текущий момент у меня нет такой стратегии, которую я мог бы рекомендовать пользователям AutoGraf 4. Сейчас я разрабатываю одну стратегию, но вряд ли она появится в 4й версии, т.к. МТ4 недостаточно быстрый, а вычислений будет очень много. Поэтому, скорее, в AG 5, к концу года. Как только стратегия будет готова и покажет хорошие результаты, я включу её в базовый состав приложения.


Peluzep: Весьма интересно

magoption: каждую стратеги надо тестировать. главное чтобы потом в плюсе остаться:)

magoption: любую стратегию тестировать, особенно при подозрении на то, что она профитная. Тут еще с брокером не промахнуться бы. Нашел обзор tutdenegki.com/foreks/yardoptiontutdenegki.com/foreks/yardoption о Ярдопционе. Кто с ними работал. Поделитесь опытом.



полная версия страницы