[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 7 из 21«12567892021»
Форум Трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Доработка советника.
Доработка советника.
Дата: Четверг, 15.10.2015, 09:22 | Сообщение # 61 Написал: Tovmas
Трейдер - Сержант
Группа: Пользователи
Сообщений: 34
Награды: 0
Статус: Offline
Вроде всё сделал по инструкции. Прилагаю архив.
Прикрепления: 3797999.zip(115Kb)
 
Дата: Четверг, 15.10.2015, 10:18 | Сообщение # 62 Написал: expforex
Трейдер - Генералиссимус
Группа: Администраторы
Сообщений: 27
Награды: 0
Статус: Offline
а самого эксперта забыли прикрепить? смотрю по именам переменным - не мой шаблон? может тот шаблон что Вы где то скачали глюкнутый

Мы лучшие
 
Дата: Четверг, 15.10.2015, 10:20 | Сообщение # 63 Написал: expforex
Трейдер - Генералиссимус
Группа: Администраторы
Сообщений: 27
Награды: 0
Статус: Offline
ATRTrailStop_v3.ex4'
у Вас есть в папке индикаторов?


Мы лучшие
 
Дата: Четверг, 15.10.2015, 11:27 | Сообщение # 64 Написал: Tovmas
Трейдер - Сержант
Группа: Пользователи
Сообщений: 34
Награды: 0
Статус: Offline
Цитата expforex ()
а самого эксперта забыли прикрепить? смотрю по именам переменным - не мой шаблон? может тот шаблон что Вы где то скачали глюкнутый
Цитата expforex ()
ATRTrailStop_v3.ex4' у Вас есть в папке индикаторов?
Советники скачал с forexfactory.
Прикрепляю исходные и изменённый мною советники, внешний индикатор. ATRTrailStop индикаторы - это те индикаторы, которые находятся у меня в папке "indicators". На самом деле это индикатор GannsSignal.
Спасибо.
Прикрепления: 2730931.rar(178Kb)


Сообщение отредактировал Tovmas - Четверг, 15.10.2015, 11:28
 
Дата: Четверг, 15.10.2015, 20:32 | Сообщение # 65 Написал: Tovmas
Трейдер - Сержант
Группа: Пользователи
Сообщений: 34
Награды: 0
Статус: Offline
expforex, ошибку нашли? Могу я рассчитывать на вас или же искать другие пути? Спасибо!
 
Дата: Пятница, 16.10.2015, 08:27 | Сообщение # 66 Написал: expforex
Трейдер - Генералиссимус
Группа: Администраторы
Сообщений: 27
Награды: 0
Статус: Offline
Tovmas, ошибок пока не нашел.

Мы лучшие
 
Дата: Пятница, 16.10.2015, 15:45 | Сообщение # 67 Написал: Tovmas
Трейдер - Сержант
Группа: Пользователи
Сообщений: 34
Награды: 0
Статус: Offline
Цитата expforex ()
Tovmas, ошибок пока не нашел.

expforex, мне нужны только функции, связанные с внешним индикатором. Если долго разбираться в этом длиннющим коде, можете просто убрать лишнее. Спасибо.
 
Дата: Пятница, 16.10.2015, 15:56 | Сообщение # 68 Написал: expforex
Трейдер - Генералиссимус
Группа: Администраторы
Сообщений: 27
Награды: 0
Статус: Offline
TovmasTovmas
функция модификации тут : 

Код
//function based/taken from Steve Hopwood (see stevehopwoodforex.com) expert advisors/shell code.
void ATRTrailStop_v3() {

//////////////////////////
    //Trails the stop at the hi/lo of the previous candle shifted by the user choice.
    //Only tries to do this once per bar, so an invalid stop error will only be generated once. I could code for
    //a too-close sl, but cannot be arsed. Coders, sort this out for yourselves.
     
    //works only if there is just one order open, but will fail when more than one order is opened
    //so we need the workaround in OneLoopPerBarTradeManager to circle through all orders, once per bar. fxdaytrader, 11.2013
     
    //if (OrderProfit() < 0) return;//Nothing to do
    double sl = OrderStopLoss();
    double NewStop;
    bool modify=false;
    bool result;
    //
    if (OrderType() == OP_BUY)
    {
       NewStop = iCustom(OrderSymbol(),0,"ATRTrailStop_v3",TimeFrame,MaPeriod,MaType,0,Atr_v3_CandleShift);//support
       if (NewStop==EMPTY_VALUE || NewStop==0.00000) NewStop = iCustom(OrderSymbol(),0,"ATRTrailStop_v3",TimeFrame,MaPeriod,MaType,0,Atr_v3_CandleShift+1);//support
       if (NewStop==EMPTY_VALUE || NewStop==0.00000) NewStop = iCustom(OrderSymbol(),0,"ATRTrailStop_v3",TimeFrame,MaPeriod,MaType,0,Atr_v3_CandleShift+2);//support       
        
       if (NewStop==EMPTY_VALUE || NewStop==0.00000) return;
       if (NewStop>=iClose(OrderSymbol(),0,0)) return;//nothing to do ...
       //iLow(NULL, CstTimeFrame, CstTrailCandles) - (BufferPips*pips2dbl);
       if ((NewStop> sl) || sl==0)
       {
          //NewStop = iLow(NULL, CstTimeFrame, CstTrailCandles);
          //Check that the new stop is> the old. Exit the function if not.
          if (sl!=0 && (NewStop < OrderStopLoss() || NewStop==OrderStopLoss()) ) return;
          //Check that the new stop locks in profit, if the user requires this.
          if (Atr_v3_TrailOnlyIfOrderInProfit && NewStop <= OrderOpenPrice() ) return;
          NewStop = NewStop - (Atr_v3_BufferPips*pips2dbl);
           
          if (MathAbs(MarketInfo(OrderSymbol(),MODE_ASK)-NewStop) <= (MarketInfo(OrderSymbol(),MODE_STOPLEVEL)*pips2dbl)) NewStop = NewStop-(2*MarketInfo(OrderSymbol(),MODE_STOPLEVEL)*pips2dbl);
          if (NewStop!=sl && (sl==0 || NewStop>sl)) modify = true;
       }//if (iLow(NULL, CstTimeFrame, CstTrailCandles)> sl)
    }//if (OrderType == OP_BUY)
     
    if (OrderType() == OP_SELL)
    {
       NewStop = iCustom(OrderSymbol(),0,"ATRTrailStop_v3",TimeFrame,MaPeriod,MaType,1,Atr_v3_CandleShift);//resistance
       if (NewStop==EMPTY_VALUE || NewStop==0.00000) NewStop = iCustom(OrderSymbol(),0,"ATRTrailStop_v3",TimeFrame,MaPeriod,MaType,1,Atr_v3_CandleShift+1);//resistance
       if (NewStop==EMPTY_VALUE || NewStop==0.00000) NewStop = iCustom(OrderSymbol(),0,"ATRTrailStop_v3",TimeFrame,MaPeriod,MaType,1,Atr_v3_CandleShift+2);//resistance
        
       if (NewStop==EMPTY_VALUE) return;
       if (NewStop<=iClose(OrderSymbol(),0,0)) return;//nothing to do ...
       //iHigh(NULL, CstTimeFrame, CstTrailCandles) + (BufferPips*pips2dbl);
       if ((NewStop < sl) || sl==0)
       {
          //NewStop = iHigh(NULL, CstTimeFrame, CstTrailCandles);
           
          //Check that the new stop is < the old. Exit the function if not.
          if (sl!=0 && (NewStop> OrderStopLoss() || NewStop==OrderStopLoss()) ) return;
          //Check that the new stop locks in profit, if the user requires this.
          if (Atr_v3_TrailOnlyIfOrderInProfit && NewStop>= OrderOpenPrice() ) return;
           
           NewStop = NewStop + (Atr_v3_BufferPips*pips2dbl);
          if (MathAbs(MarketInfo(OrderSymbol(),MODE_BID)-NewStop) <= (MarketInfo(OrderSymbol(),MODE_STOPLEVEL)*pips2dbl)) NewStop = NewStop+(2*MarketInfo(OrderSymbol(),MODE_STOPLEVEL)*pips2dbl);
          if (NewStop!=sl && (sl==0 || NewStop<sl)) modify = true;
       }
    }
     
    if (modify)
    {
        
       NewStop = NormalizePrice(OrderSymbol(),NewStop);
       while (IsTradeContextBusy() ) Sleep(100);
       result = OrderModify(OrderTicket(), OrderOpenPrice(), NewStop, OrderTakeProfit(), OrderExpiration(), CLR_NONE);

    }//if (modify)

}


но тут советник собран по частям из всего что было. половина кода декомпилирована, все вразброс, очень сложно в нем понять что либо


Мы лучшие
 
Дата: Пятница, 16.10.2015, 21:15 | Сообщение # 69 Написал: Tovmas
Трейдер - Сержант
Группа: Пользователи
Сообщений: 34
Награды: 0
Статус: Offline
expforex, я попробовал преобразовать на этот раз уже другой советник (на основе ЕМА), работающий на терминале нужного мне брокера, но опять что-то не вышло. Выкладываю изменённый и исходный советники и внешний индикатор. Посмотрите, пожалуйста, что я сделал не то.
Прикрепления: Gann2.rar(34Kb)
 
Дата: Пятница, 16.10.2015, 21:53 | Сообщение # 70 Написал: expforex
Трейдер - Генералиссимус
Группа: Администраторы
Сообщений: 27
Награды: 0
Статус: Offline
ну у Вас даже переменные не сходятся в индикаторе:


Код
extern string TimeFrame = "+1";
extern int MaPeriod = 5;
extern int MaType = 1;
extern bool MultiColor = TRUE;
extern string note = "turn on Alert = true; turn off = false";
extern bool alertsOn = FALSE;
extern bool alertsOnCurrent = TRUE;
extern bool alertsMessage = TRUE;
extern bool alertsSound = TRUE;
extern bool alertsEmail = FALSE;
extern string soundfile = "alert.wav";


а тут : 
   double GannsSignalStopLoss_V4 = iCustom(symbol,GannsSignalStopLoss_V4TimeFrame,"Ganns Signal StopLoss_V4~.mq4", GannsSignalStopLoss_V4Period,0,MODE_EMA,Price,GannsSignalStopLoss_V4Shift);

GannsSignalStopLoss_V4Period,0,MODE_EMA,Price

+ не указан буфер 

double  iCustom(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   string       name,             // папка/имя_пользовательского индикатора
   ...                            // список входных параметров индикатора
   int          mode,             // источник данных
   int          shift             // сдвиг
   );


Мы лучшие
 
Форум Трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Доработка советника.
Страница 7 из 21«12567892021»
Поиск: