Выбрать символ в настройках - страница 3

 
Alexey Viktorov:

Заполнить массив символов и работать с этим массивом.

Тут бесплатный советник использующий приведённый кусок кода *** 


ps; барабашка, зря вы удалили ссылку. Среди моих продуктов в маркете, только ДВА платных. Один из них от 2017 года арендован 4 раза, а второй от 2014 года за 10 баксов не куплен ни разу. Так-что тут никакой рекламы и не предвиделось.

Спасибо! что ответили. и зачем я зашёл в эту тему - теперь мучаюсь , и не чего не получается . все равно буду искать способ , чтобы заработало.

что то мудрю - не знаю, может как то так получится

struct translate{
   string EURUSD;
   string GBPUSD;
   string USDCHF;
   string USDJPY;
   string USDCAD;
   string AUDUSD;
   string AUDNZD;
   string AUDCAD;
   string AUDCHF;
   string AUDJPY;
   string CHFJPY;
   string EURGBP;
   string EURAUD;
   string EURCHF;
   string EURJPY;
   string EURNZD;
   string EURCAD;
   string GBPCHF;
   string GBPJPY;
   string CADCHF;
};
translate langs;

   

 
Aleksandr Klapatyuk:

Спасибо! что ответили. и зачем я зашёл в эту тему - теперь мучаюсь , и не чего не получается . все равно буду искать способ , чтобы заработало.

что то мудрю - не знаю, может как то так получится

   

Зря вы этим занялись. Ни структуру, ни enum программно не заполнить. А массив можно использовать исключительно для мультивалютного советника. Мультивалютный, это не тот который можно поставить на любой символ, а тот который находясь на одном из графиков может торговать несколькими парами. В той ссылке как раз пример такого мультивалютника. Выбор валют можно назначить один из трёх вариантов:

  1. торгуется только та пара на которой находится советник
  2. торгуется список валют подготовленный в строке через запятую
  3. торгуются все пары открытые в момент запуска советника
А вот варианты выбираются через enum
 
Alexey Viktorov:

Зря вы этим занялись. Ни структуру, ни enum программно не заполнить. А массив можно использовать исключительно для мультивалютного советника. Мультивалютный, это не тот который можно поставить на любой символ, а тот который находясь на одном из графиков может торговать несколькими парами. В той ссылке как раз пример такого мультивалютника. Выбор валют можно назначить один из трёх вариантов:

  1. торгуется только та пара на которой находится советник
  2. торгуется список валют подготовленный в строке через запятую
  3. торгуются все пары открытые в момент запуска советника
А вот варианты выбираются через enum

Спасибо! а то  - занялся тем, что не осилю. лучше что не будь - полегче поучу

вот так - я когда то мудрил - всё работало.

string         Symb[3]={"EURUSD","GBPUSD","EURJPY"};
double         prPos[3];
------------------------------------------------------------
   for(int i=0;i<3; i++)
      if(PositionSelect(Symb[i]))
        {
         prPos[i]=(PositionGetDouble(POSITION_PROFIT)/PositionGetDouble(POSITION_VOLUME)/SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE))/n;
        }
      else
        {
         prPos[i]=0;
        }
 
Aleksandr Klapatyuk:

Спасибо! а то  - занялся тем, что не осилю. лучше что не будь - полегче поучу

вот так - я когда то мудрил - всё работало.

Это и есть второй вариант из описанных мной. Торговля валютами из списка подготовленного в строке через запятую. Только в моём варианте чуток не так. Список выглядет примерно так

"EURUSD,GBPUSD,EURJPY"

потом из этого списка заполняется массив и с массивом работаем. И ещё присутствует определение суффикса валюты и автоматическое присоединение его при заполнении массива. Это чтобы не приходилось перенабирать список на разных счетах.

 
Alexey Viktorov:

Мы о чём-то разном говорим.

симв

syTotal = SymbolsTotal(true) похоже всегда равен 1 т.к. при true SymbolTotal() выдает не количество символов в "Обзоре рынка", а количество выбранных в нем и встает вопрос как шагать по списку предварительно  выбирая следующий элемент.

 
andre:


syTotal = SymbolsTotal(true) похоже всегда равен 1 т.к. при true SymbolTotal() выдает не количество символов в "Обзоре рынка", а количество выбранных в нем и встает вопрос как шагать по списку предварительно  выбирая следующий элемент.

В тестере да, всегда один символ. Потому в описании советника есть такое предупреждение, что в тестере можно тестировать только на одном символе или на списке символов.

 
К сожалению, что бы сделать красиво, придется самому рисовать панель ввода, реализовывать выпадающий список, в общем, ничего принципиально сложного, но мутно. Если религия и/или заказчик позволяют, то проще на шарпе, через windowsform реализовать. Насчет технической возможности это сделать в стандартной панели, я принципиальных проблем не вижу, тут больше вопрос в желании создателей. Реализовать предоставление выбора из значений можно, для компилятора только надо ключевые слова дополрительные ввести, чтобы писать типа: __declsymb input string value=__default(или __pos1), в общем тут уже к разработчикам компилятора/терминала.
 
Vladimir Simakov:
К сожалению, что бы сделать красиво, придется самому рисовать панель ввода, реализовывать выпадающий список, в общем, ничего принципиально сложного, но мутно. Если религия и/или заказчик позволяют, то проще на шарпе, через windowsform реализовать. Насчет технической возможности это сделать в стандартной панели, я принципиальных проблем не вижу, тут больше вопрос в желании создателей. Реализовать предоставление выбора из значений можно, для компилятора только надо ключевые слова дополрительные ввести, чтобы писать типа: __declsymb input string value=__default(или __pos1), в общем тут уже к разработчикам компилятора/терминала.

Ну, да. Если через dll то можно и в танки играть на терминале. Hо проблема поднималась без учёта возможностей dll

 
Alexey Viktorov:

Ну, да. Если через dll то можно и в танки играть на терминале. Hо проблема поднималась без учёта возможностей dll

Тогда либо создателям молиться, либо свою панель ввода писать. По старту робота (с индикатором посложнее)  в OnTimer() запускается самописная панель ввода, вводятся данные, потом уже робот  пошел отрабатывать. Как-то так.
 
Vladimir Simakov:
Тогда либо создателям молиться, либо свою панель ввода писать. По старту робота (с индикатором посложнее)  в OnTimer() запускается самописная панель ввода, вводятся данные, потом уже робот  пошел отрабатывать. Как-то так.

Сначала надо-бы спросить: "А кому оно надо???"

Ну хотел один человек, попытался, не получилось, ему было сказано что средствами MQL никак не сделать. А вопроса как другими способами сделать никто не задавал. Зачем такое сверкание? Тут достаточно людей которые могут и мультики рисовать на графике терминала.

Причина обращения: