Старт распродаж! Черная пятница - 50%


Новые сообщения · Участники · Правила форума · Поиск · RSS · Вход · Регистрация ·

Страница 7 из 18«12567891718»
Форум трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Доработка советника.
Доработка советника.

TovmasДата: Четверг, 15.10.2015, 09:22 | Сообщение # 61
Трейдер - Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Вроде всё сделал по инструкции. Прилагаю архив.

Прикрепления: 3797999.zip(115Kb)
 
СообщениеВроде всё сделал по инструкции. Прилагаю архив.

Автор - Tovmas
Дата добавления - 15.10.2015 в 09:22

expforexДата: Четверг, 15.10.2015, 10:18 | Сообщение # 62
Главный Администартор
Группа: Администраторы
Сообщений: 8951
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

а самого эксперта забыли прикрепить? смотрю по именам переменным - не мой шаблон? может тот шаблон что Вы где то скачали глюкнутый



Программирование на заказ || Наши Разработки

 
Сообщениеа самого эксперта забыли прикрепить? смотрю по именам переменным - не мой шаблон? может тот шаблон что Вы где то скачали глюкнутый

Автор - expforex
Дата добавления - 15.10.2015 в 10:18

expforexДата: Четверг, 15.10.2015, 10:20 | Сообщение # 63
Главный Администартор
Группа: Администраторы
Сообщений: 8951
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

ATRTrailStop_v3.ex4'
у Вас есть в папке индикаторов?



Программирование на заказ || Наши Разработки

 
СообщениеATRTrailStop_v3.ex4'
у Вас есть в папке индикаторов?

Автор - expforex
Дата добавления - 15.10.2015 в 10:20

TovmasДата: Четверг, 15.10.2015, 11:27 | Сообщение # 64
Трейдер - Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Цитата expforex ()
а самого эксперта забыли прикрепить? смотрю по именам переменным - не мой шаблон? может тот шаблон что Вы где то скачали глюкнутый
Цитата expforex ()
ATRTrailStop_v3.ex4' у Вас есть в папке индикаторов?
Советники скачал с forexfactory.
Прикрепляю исходные и изменённый мною советники, внешний индикатор. ATRTrailStop индикаторы - это те индикаторы, которые находятся у меня в папке "indicators". На самом деле это индикатор GannsSignal.
Спасибо.

Прикрепления: 2730931.rar(178Kb)


Сообщение отредактировал Tovmas - Четверг, 15.10.2015, 11:28
 
Сообщение
Цитата expforex ()
а самого эксперта забыли прикрепить? смотрю по именам переменным - не мой шаблон? может тот шаблон что Вы где то скачали глюкнутый
Цитата expforex ()
ATRTrailStop_v3.ex4' у Вас есть в папке индикаторов?
Советники скачал с forexfactory.
Прикрепляю исходные и изменённый мною советники, внешний индикатор. ATRTrailStop индикаторы - это те индикаторы, которые находятся у меня в папке "indicators". На самом деле это индикатор GannsSignal.
Спасибо.

Автор - Tovmas
Дата добавления - 15.10.2015 в 11:27

TovmasДата: Четверг, 15.10.2015, 20:32 | Сообщение # 65
Трейдер - Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

expforex, ошибку нашли? Могу я рассчитывать на вас или же искать другие пути? Спасибо!

 
Сообщениеexpforex, ошибку нашли? Могу я рассчитывать на вас или же искать другие пути? Спасибо!

Автор - Tovmas
Дата добавления - 15.10.2015 в 20:32

expforexДата: Пятница, 16.10.2015, 08:27 | Сообщение # 66
Главный Администартор
Группа: Администраторы
Сообщений: 8951
Награды: 29
Статус: Offline


[Бонусы за сообщения ]

Tovmas, ошибок пока не нашел.



Программирование на заказ || Наши Разработки

 
СообщениеTovmas, ошибок пока не нашел.

Автор - expforex
Дата добавления - 16.10.2015 в 08:27

TovmasДата: Пятница, 16.10.2015, 15:45 | Сообщение # 67
Трейдер - Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

Цитата expforex ()
Tovmas, ошибок пока не нашел.

expforex, мне нужны только функции, связанные с внешним индикатором. Если долго разбираться в этом длиннющим коде, можете просто убрать лишнее. Спасибо.

 
Сообщение
Цитата expforex ()
Tovmas, ошибок пока не нашел.

expforex, мне нужны только функции, связанные с внешним индикатором. Если долго разбираться в этом длиннющим коде, можете просто убрать лишнее. Спасибо.

Автор - Tovmas
Дата добавления - 16.10.2015 в 15:45

expforexДата: Пятница, 16.10.2015, 15:56 | Сообщение # 68
Главный Администартор
Группа: Администраторы
Сообщений: 8951
Награды: 29
Статус: 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)

}


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



Программирование на заказ || Наши Разработки

 
Сообщение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)

}


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

Автор - expforex
Дата добавления - 16.10.2015 в 15:56

TovmasДата: Пятница, 16.10.2015, 21:15 | Сообщение # 69
Трейдер - Сержант
Группа: Пользователи
Сообщений: 31
Награды: 0
Статус: Offline


[Бонусы за сообщения ]

expforex, я попробовал преобразовать на этот раз уже другой советник (на основе ЕМА), работающий на терминале нужного мне брокера, но опять что-то не вышло. Выкладываю изменённый и исходный советники и внешний индикатор. Посмотрите, пожалуйста, что я сделал не то.

Прикрепления: Gann2.rar(34Kb)
 
Сообщениеexpforex, я попробовал преобразовать на этот раз уже другой советник (на основе ЕМА), работающий на терминале нужного мне брокера, но опять что-то не вышло. Выкладываю изменённый и исходный советники и внешний индикатор. Посмотрите, пожалуйста, что я сделал не то.

Автор - Tovmas
Дата добавления - 16.10.2015 в 21:15

expforexДата: Пятница, 16.10.2015, 21:53 | Сообщение # 70
Главный Администартор
Группа: Администраторы
Сообщений: 8951
Награды: 29
Статус: 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             // сдвиг
   );



Программирование на заказ || Наши Разработки

 
Сообщениену у Вас даже переменные не сходятся в индикаторе:


Код
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             // сдвиг
   );

Автор - expforex
Дата добавления - 16.10.2015 в 21:53
Форум трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Доработка советника.
Страница 7 из 18«12567891718»
Поиск:


WebMoney Яндекс цитирования.