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

Страница 5 из 10«1234567910»
Форум трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Вопросы от новичков (Здесь можно задать интересующий Вас вопрос)
Вопросы от новичков

expforexДата: Понедельник, 26.01.2009, 02:22 | Сообщение # 1
Главный Администартор
Группа: Администраторы
Сообщений: 9079
Награды: 29
Статус: Offline


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

Здесь можно задать интересующий Вас вопрос

Внимание: Здесь обсуждается только тематические вопросы. Все что связанно с модернизацией и написанием советников с чистого листа находиться в форуме Заказ советников



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

 
СообщениеЗдесь можно задать интересующий Вас вопрос

Внимание: Здесь обсуждается только тематические вопросы. Все что связанно с модернизацией и написанием советников с чистого листа находиться в форуме Заказ советников


Автор - expforex
Дата добавления - 26.01.2009 в 02:22

expforexДата: Пятница, 09.03.2012, 20:54 | Сообщение # 41
Главный Администартор
Группа: Администраторы
Сообщений: 9079
Награды: 29
Статус: Offline


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

Приветствую,
Выложите код лучше файлом. а то не копируется в едитор



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

 
СообщениеПриветствую,
Выложите код лучше файлом. а то не копируется в едитор

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

max020780Дата: Воскресенье, 11.03.2012, 09:12 | Сообщение # 42
Трейдер - Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Статус: Offline


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

вот пожалуйста

Добавлено (11.03.2012, 09:12)
---------------------------------------------
файл выложил , подскажите как правильно сделать????

Прикрепления: 111.mq4(6Kb)
 
Сообщениевот пожалуйста

Добавлено (11.03.2012, 09:12)
---------------------------------------------
файл выложил , подскажите как правильно сделать????


Автор - max020780
Дата добавления - 11.03.2012 в 09:12

expforexДата: Понедельник, 12.03.2012, 11:16 | Сообщение # 43
Главный Администартор
Группа: Администраторы
Сообщений: 9079
Награды: 29
Статус: Offline


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

max020780, выложить в файле я имел ввиду выложить полный файл, целый файл, Вы выложили часть кода в файле mql4
Я не могу даже его скомпилировать.
что такое dбай
Ужасный код где ВЫ его взяли? в нем же глаза можно поломать. Это смесь декомпилированного с переименовонного. Извините.
Если хотите разобраться как удалять линии, имено понять принцип, то:

всем линиям присваиваем имена с суфиксом, например название EA

после например инициализации мы можем их удалить следующим образом:

Code
   for(int i=ObjectsTotal();i>=0;i--)
      {
       if(StringFind(ObjectName(i),name)!=-1)ObjectDelete(ObjectName(i));
      }


ну вот например вот эта конструкция:

Code
                    for (int i=0; i<300; i++) {
        
                    lineбай[i]= "Уровень.бай = "+i;
                    ObjectDelete(lineбай[i]);
     }


ВЫ понимаете ее смысл?

Code
                 for (int i=0; i<l_count_4281; i++) {   
      dбай[i] = MarketInfo(Symbol(), MODE_ASK);
      datetime Ts = Time[0]+Period()*40*(WindowBarsPerChart());
      lineбай[i]= "Уровень.бай = "+i;
      if(ObjectFind(lineбай[i])<0){
      ObjectCreate(lineбай[i], OBJ_TREND, 0, Ts, dбай[i], Time[10],dбай[i]);
      ObjectSet(lineбай[i], OBJPROP_STYLE, стиль);
      ObjectSet(lineбай[i], OBJPROP_WIDTH, ширина);   
      ObjectSet(lineбай[i], OBJPROP_COLOR, Red);
      ObjectSet(lineбай[i], OBJPROP_BACK,  true);
      ObjectSet(lineбай[i], OBJPROP_RAY,   луч); // Луч    
      Print("колво линий = ",l_count_4281);
        
      }


Здесь я так понял Вы хотите поставить линии?

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

Мой Вам совет - хотите заняться программированием, не используйте декомпилированный код.



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

 
Сообщениеmax020780, выложить в файле я имел ввиду выложить полный файл, целый файл, Вы выложили часть кода в файле mql4
Я не могу даже его скомпилировать.
что такое dбай
Ужасный код где ВЫ его взяли? в нем же глаза можно поломать. Это смесь декомпилированного с переименовонного. Извините.
Если хотите разобраться как удалять линии, имено понять принцип, то:

всем линиям присваиваем имена с суфиксом, например название EA

после например инициализации мы можем их удалить следующим образом:

Code
   for(int i=ObjectsTotal();i>=0;i--)
      {
       if(StringFind(ObjectName(i),name)!=-1)ObjectDelete(ObjectName(i));
      }


ну вот например вот эта конструкция:

Code
                    for (int i=0; i<300; i++) {
        
                    lineбай[i]= "Уровень.бай = "+i;
                    ObjectDelete(lineбай[i]);
     }


ВЫ понимаете ее смысл?

Code
                 for (int i=0; i<l_count_4281; i++) {   
      dбай[i] = MarketInfo(Symbol(), MODE_ASK);
      datetime Ts = Time[0]+Period()*40*(WindowBarsPerChart());
      lineбай[i]= "Уровень.бай = "+i;
      if(ObjectFind(lineбай[i])<0){
      ObjectCreate(lineбай[i], OBJ_TREND, 0, Ts, dбай[i], Time[10],dбай[i]);
      ObjectSet(lineбай[i], OBJPROP_STYLE, стиль);
      ObjectSet(lineбай[i], OBJPROP_WIDTH, ширина);   
      ObjectSet(lineбай[i], OBJPROP_COLOR, Red);
      ObjectSet(lineбай[i], OBJPROP_BACK,  true);
      ObjectSet(lineбай[i], OBJPROP_RAY,   луч); // Луч    
      Print("колво линий = ",l_count_4281);
        
      }


Здесь я так понял Вы хотите поставить линии?

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

Мой Вам совет - хотите заняться программированием, не используйте декомпилированный код.

Автор - expforex
Дата добавления - 12.03.2012 в 11:16

max020780Дата: Вторник, 13.03.2012, 08:49 | Сообщение # 44
Трейдер - Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Статус: Offline


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

Code
     for (int i=0; i<300; i++) {
          
                     lineбай[i]= "Уровень.бай = "+i;
                     ObjectDelete(lineбай[i]);
      }


Это я станул на одном из форумов.
Как это работает если честно то не понимаю

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

с Ув. Максим

 
Сообщение
Code
     for (int i=0; i<300; i++) {
          
                     lineбай[i]= "Уровень.бай = "+i;
                     ObjectDelete(lineбай[i]);
      }


Это я станул на одном из форумов.
Как это работает если честно то не понимаю

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

с Ув. Максим

Автор - max020780
Дата добавления - 13.03.2012 в 08:49

expforexДата: Вторник, 13.03.2012, 10:20 | Сообщение # 45
Главный Администартор
Группа: Администраторы
Сообщений: 9079
Награды: 29
Статус: Offline


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

Quote (max020780)
Это я станул на одном из форумов.
Как это работает если честно то не понимаю

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

он перебирает массив с 300 элементами
потом присваивает каждому элементу массива строчку "Уровень.бай = "+i;
а потом удаляет линию с "Уровень.бай = "+i;



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

 
Сообщение
Quote (max020780)
Это я станул на одном из форумов.
Как это работает если честно то не понимаю

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

он перебирает массив с 300 элементами
потом присваивает каждому элементу массива строчку "Уровень.бай = "+i;
а потом удаляет линию с "Уровень.бай = "+i;

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

max020780Дата: Пятница, 13.12.2013, 19:04 | Сообщение # 46
Трейдер - Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Статус: Offline


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

помогите разобраться пытаюсь модифицировать два ордера одновременно один отложенный другой открытый так открытый модифицируется без проблем а
отложенный намного позже и в придачу когда советник запущен на
нескольких парах он модифицирует отложенный по цене открытого ордера по
другой валютной паре если ордера открыты в том же направлении

Код
if( NumberOfPositionsBay(Symbol())==1 && NumberOfPositionsSell_otl(Symbol())==1   
&&GetOrderLotsOtlSell(Symbol())==start_Lot*2 &&   
GetOrderLotsBay(Symbol())==start_Lot)
{

     
        for (int k = 0; k < OrdersTotal(); k++)   
        {
        if (OrderSelect(k,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:
//------------------------------------------------------ 3 --
if (OrderSymbol()!= Symbol()) continue; // Не наш фин.инструм.
          
        if (OrderSymbol() == Symbol() && OrderType() == OP_SELLSTOP ) {
         
        tp_sell_otl=NormalizeDouble(s-(2*Point)-spred-(GetOrderPriceBay(Symbol())-(s-Point-spred))/Point/2*Point, Digits);
        sl_sell_otl=NormalizeDouble(GetOrderPriceBay(Symbol()), Digits);
         
        OrderModify(OrderTicket(),NormalizeDouble(s-Point-spred, Digits),sl_sell_otl,tp_sell_otl,0);
           
        }
          
           
         if (OrderSymbol() == Symbol() && OrderType() == OP_BUY  ) {
           
        sl_buy_otl=NormalizeDouble(s-spred-Point, Digits);
        OrderModify(OrderTicket(), OrderOpenPrice(),sl_buy_otl,OrderTakeProfit(),0);
          
        }
        }
        }
}



Сообщение отредактировал max020780 - Пятница, 13.12.2013, 20:23
 
Сообщениепомогите разобраться пытаюсь модифицировать два ордера одновременно один отложенный другой открытый так открытый модифицируется без проблем а
отложенный намного позже и в придачу когда советник запущен на
нескольких парах он модифицирует отложенный по цене открытого ордера по
другой валютной паре если ордера открыты в том же направлении

Код
if( NumberOfPositionsBay(Symbol())==1 && NumberOfPositionsSell_otl(Symbol())==1   
&&GetOrderLotsOtlSell(Symbol())==start_Lot*2 &&   
GetOrderLotsBay(Symbol())==start_Lot)
{

     
        for (int k = 0; k < OrdersTotal(); k++)   
        {
        if (OrderSelect(k,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:
//------------------------------------------------------ 3 --
if (OrderSymbol()!= Symbol()) continue; // Не наш фин.инструм.
          
        if (OrderSymbol() == Symbol() && OrderType() == OP_SELLSTOP ) {
         
        tp_sell_otl=NormalizeDouble(s-(2*Point)-spred-(GetOrderPriceBay(Symbol())-(s-Point-spred))/Point/2*Point, Digits);
        sl_sell_otl=NormalizeDouble(GetOrderPriceBay(Symbol()), Digits);
         
        OrderModify(OrderTicket(),NormalizeDouble(s-Point-spred, Digits),sl_sell_otl,tp_sell_otl,0);
           
        }
          
           
         if (OrderSymbol() == Symbol() && OrderType() == OP_BUY  ) {
           
        sl_buy_otl=NormalizeDouble(s-spred-Point, Digits);
        OrderModify(OrderTicket(), OrderOpenPrice(),sl_buy_otl,OrderTakeProfit(),0);
          
        }
        }
        }
}

Автор - max020780
Дата добавления - 13.12.2013 в 19:04

expforexДата: Пятница, 13.12.2013, 20:48 | Сообщение # 47
Главный Администартор
Группа: Администраторы
Сообщений: 9079
Награды: 29
Статус: Offline


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

Приветствую,  
как минимум у Вас много скобок лишних, их я убрал, остальной код проверить особо не могу нужен полный код советника. 
а так вроде все норм. 



Код
if( NumberOfPositionsBay(Symbol()==1 && NumberOfPositionsSell_otl(Symbol()==1    
&&GetOrderLotsOtlSell(Symbol()==start_Lot*2 &&    
GetOrderLotsBay(Symbol()==start_Lot)  
{  

       
         for (int k = 0; k < OrdersTotal(); k++)    
         {  
         if (OrderSelect(k,SELECT_BY_POS)==true) // Если есть следующий  
{ // Анализ ордеров:  
//------------------------------------------------------ 3 --  
if (OrderSymbol()!= Symbol()) continue; // Не наш фин.инструм.  
            
         if (OrderSymbol() == Symbol() && OrderType() == OP_SELLSTOP ) {  
           
         tp_sell_otl=NormalizeDouble(s-(2*Point)-spred-(GetOrderPriceBay(Symbol())-(s-Point-spred))/Point/2*Point, Digits);  
         sl_sell_otl=NormalizeDouble(GetOrderPriceBay(Symbol()), Digits);  
           
         OrderModify(OrderTicket(),NormalizeDouble(s-Point-spred, Digits),sl_sell_otl,tp_sell_otl,0);  
             
         }  
            
             
          if (OrderSymbol() == Symbol() && OrderType() == OP_BUY  ) {  
             
         sl_buy_otl=NormalizeDouble(s-spred-Point, Digits);  
         OrderModify(OrderTicket(), OrderOpenPrice(),sl_buy_otl,OrderTakeProfit(),0);  
            
         }  
         }  
         }  
}



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

 
СообщениеПриветствую,  
как минимум у Вас много скобок лишних, их я убрал, остальной код проверить особо не могу нужен полный код советника. 
а так вроде все норм. 


Код
if( NumberOfPositionsBay(Symbol()==1 && NumberOfPositionsSell_otl(Symbol()==1    
&&GetOrderLotsOtlSell(Symbol()==start_Lot*2 &&    
GetOrderLotsBay(Symbol()==start_Lot)  
{  

       
         for (int k = 0; k < OrdersTotal(); k++)    
         {  
         if (OrderSelect(k,SELECT_BY_POS)==true) // Если есть следующий  
{ // Анализ ордеров:  
//------------------------------------------------------ 3 --  
if (OrderSymbol()!= Symbol()) continue; // Не наш фин.инструм.  
            
         if (OrderSymbol() == Symbol() && OrderType() == OP_SELLSTOP ) {  
           
         tp_sell_otl=NormalizeDouble(s-(2*Point)-spred-(GetOrderPriceBay(Symbol())-(s-Point-spred))/Point/2*Point, Digits);  
         sl_sell_otl=NormalizeDouble(GetOrderPriceBay(Symbol()), Digits);  
           
         OrderModify(OrderTicket(),NormalizeDouble(s-Point-spred, Digits),sl_sell_otl,tp_sell_otl,0);  
             
         }  
            
             
          if (OrderSymbol() == Symbol() && OrderType() == OP_BUY  ) {  
             
         sl_buy_otl=NormalizeDouble(s-spred-Point, Digits);  
         OrderModify(OrderTicket(), OrderOpenPrice(),sl_buy_otl,OrderTakeProfit(),0);  
            
         }  
         }  
         }  
}

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

max020780Дата: Пятница, 13.12.2013, 22:28 | Сообщение # 48
Трейдер - Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Статус: Offline


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

так без этих скобок не компилируется
мне кажется что они верно расставлены

 
Сообщениетак без этих скобок не компилируется
мне кажется что они верно расставлены

Автор - max020780
Дата добавления - 13.12.2013 в 22:28

expforexДата: Пятница, 13.12.2013, 22:40 | Сообщение # 49
Главный Администартор
Группа: Администраторы
Сообщений: 9079
Награды: 29
Статус: Offline


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

max020780, ну они неправильно расставлены были, прикрепите полный код.



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

 
Сообщениеmax020780, ну они неправильно расставлены были, прикрепите полный код.

Автор - expforex
Дата добавления - 13.12.2013 в 22:40

max020780Дата: Суббота, 14.12.2013, 08:06 | Сообщение # 50
Трейдер - Сержант
Группа: Пользователи
Сообщений: 27
Награды: 0
Статус: Offline


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

на тестере и на демо на одной валютной паре работает идеально как только подключаешь вторую пару то тут и начинаются проблеммы
написал вот так


а в алерте почемуто OrderSymbol()==GBPUSD посмотрите на скинда и открытый селл он модифицировал а отложенный нет
как только удалил отложенник по gbpusd и удалил с него советника то ордер сразу по евро модифицировался

Прикрепления: 4601731.png(143Kb)


Сообщение отредактировал max020780 - Суббота, 14.12.2013, 08:08
 
Сообщениена тестере и на демо на одной валютной паре работает идеально как только подключаешь вторую пару то тут и начинаются проблеммы
написал вот так

а в алерте почемуто OrderSymbol()==GBPUSD посмотрите на скинда и открытый селл он модифицировал а отложенный нет
как только удалил отложенник по gbpusd и удалил с него советника то ордер сразу по евро модифицировался


Автор - max020780
Дата добавления - 14.12.2013 в 08:06
Форум трейдеров » Скрипты Советники Индикаторы для Metatrader4/Metatrader5 » MT 4 MQL программирование, помощь. » Вопросы от новичков (Здесь можно задать интересующий Вас вопрос)
Страница 5 из 10«1234567910»
Поиск:


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