Создание более 1 SubWindow MT4
Results 1 to 4 of 4

Thread: Создание более 1 SubWindow MT4

  1. #1
    Вложений: 1 hi,

    Просто вопрос: кто-нибудь знает, можно ли создать несколько поддоменов из одного индекса.

    например indoor: должен создать Sub Window 1 и SubWindow 2 и SubWindow 3.

    Я использую их для построения разных объектов: в настоящий момент я создаю каждый SubWindow с отдельным индексом, поэтому, хотя, возможно, кто-то знает способ создать их изнутри одного индекса.

    В случае, если это возможно, и кто-то понял это, дайте мне знать. СПАСИБО МДЖ.


    pic ниже в качестве примера: на данный момент я использую 5 отдельных индексов для создания рисунка.

    https://www.forex-russian.com/crypto...rogrammed.html

  2. #2
    mt4 не разработан таким образом. так что нет. но, если то, что вы пытаетесь выполнить, состоит в том, что 1 indior выполняет кучу вычислений, а затем выплевывает их в отдельные области, вы можете загрузить один и тот же индекс несколько раз, а затем определить, что это за окном, и, следовательно, какой кусок данные предназначены только для отображения. т. е. каждый индиор способен искать имена других подлодок. используя базовое имя и номер индекса смещения, вы можете однозначно самоназывать indi sub-window просто путем поиска базового имени и итерации номера смещения индекса до тех пор, пока не будет найдена комбинация, которая еще не существует. сделайте это в разделе init, чтобы изначально дать уникальное имя. base = name; i = 0; while (windowfind (base i) lt; 0) i ; для того чтобы учесть вероятность того, что в какой-то момент копия indior в какой-то момент будет удалена (даже если это произошло случайно), вам необходимо постоянно переупаковывать используемые имена. если вы ищете уникальное неиспользуемое имя при каждом запуске, а также подтвердите, что смещение индекса меньше, чем то, что вы ранее использовали для самоназвания под-окна indior, вы будете иметь индексы, упаковывающие их имена от 0 до копий - 1 каждая итерация. если вы не убедитесь, что вы проверите, что найденное доступное имя смещение не использует смещение, меньшее, чем используемое в настоящее время смещение, что произойдет, оно найдет его собственное имя в использовании, а затем найдет свободную комбинацию с номером выше самого себя , переименуйте себя на это большее число и, следовательно, оставите пробел в используемых именах. когда дальнейшие копии выполняют этот же процесс, они будут заполнять этот пробел до некоторой степени, но последняя копия, которую нужно запустить, будет называть себя на один меньше, чем она была ранее, и поэтому теперь разрыв является именем, которое ранее использовалось (поскольку копия, изначально назвал себя неправильным, назвал бы себя выше, чем наивысшее именованное смещение, которое теперь JUST сдвинуло свое собственное имя на одно смещение). теперь вы отмечаете номер под-окна текущего окна indi с помощью windowfind ... затем вы перебираете весь список копий indi, который вы используете, и сравниваете их результаты windowfind .... однако многие оконные образы возвращают значение меньше, чем текущая копия, количество копий, которые в настоящее время находятся над под-окном текущего инди. т.е. ваша диаграмма будет выглядеть следующим образом: MAIN CHART - window 0 some indi - window 1 другое indi - window 2 name0 - window 3 name1 - window 4 name2 - window 5 name3 - window 6 super dooper indi - window 7 с точки зрения name2 в конечном итоге будет работать, что работает 4 экземпляра, а окно, в котором оно выполняется, - это окно 5. Когда он выполняет итерацию через список инди, он обнаруживает, что имя0 и name1 находятся в под-окнах над собой. .. поэтому это третье окно .... поэтому он должен отображать третий тип данных, который вы хотите однозначно отображать в каждом под-окне. Аналогично name0 не найдет окон выше, поэтому он знает, что это первое окно. таким образом у вас естьсозданный indior, который называет себя таким образом, что все имена будут иметь индекс смещения, который является последовательным, и из этого вы можете обнаружить, где в под-окнах текущая копия находится по сравнению с любыми другими тиражами. теперь с помощью оператора switch вы можете отобразить конкретный тип данных, который вы хотите, в зависимости от того, сколько копий работает над этим окном. вы можете спросить, в чем причина того, что нужно подсчитать, сколько копий находится в окнах выше текущей копии, а не просто ссылаться на номер смещения индекса, который должен индить точно то же самое ... отличный вопрос! причина, по которой вам нужно это сделать: ЕСЛИ вы удаляете копию, а затем загружаете новую копию. Перед тем, как произойдет галочка, и заставит все окна переупаковывать свои имена, что у вас будет, это копия, сидящая под всеми другими копиями, но она будет автоматически называться как номер копии, которую вы только что удалили. например MAIN CHART name0 name1 name2 name3 между тиками, которые вы удаляете name0, а затем загрузите новую копию идентификатора, новая копия найдет name0 в качестве первой доступной комбинации базы смещения, и поэтому у вас будет следующее ... ГЛАВНАЯ CHART name1 name2 name3 name0 поэтому, если вы просто ссылаетесь на индекс смещения, чтобы решить, что инди должно отображать, вы получите данные, которые будут удалены и отображены в неправильном порядке. и поэтому вы должны иметь каждый индивидуален через все известные активные копии, а затем находить, где они сидят по сравнению с собой. таким образом name0 все равно найдет, что имена с 1 по 3 находятся выше самого себя, и поэтому он будет знать, что он должен отображать 4-й тип данных, а не первый тип данных, как только вы достигнете оператора switch. это соответствует тем же принципам, почему вы должны постоянно обновлять имена каждого тика. если вы не переплетаете имена каждого тика, и вы удаляете более одной копии окна, а затем загружаете меньше, чем количество удаленных вами копий, вы снова создадите пробел в используемых именах (и поэтому вы не будет знать, сколько копий действительно работает, и поэтому сколько нужно проверять при проверке их позиций в окне). например если вы удалили 2 копии, а только загрузили одну копию, новая копия найдет бесплатное имя, которое использовалось первой удаленной копией, но у вас все еще есть второе имя удаленных копий, которое не используется, что может создать разрыв в последовательности используемых имен. если вы удаляете какие-либо копии, не переупаковывайте, и удаленная копия не является последней копией, которую нужно загрузить, а затем у вас есть пробел. все-в-одном, вам нужно повторно упаковать имена для каждого тика, чтобы убедиться, что у всех удаленных копий их имена повторно используются другой копией и гарантируют, что все копии будут последовательно названы (позволяя выполнять итерацию по всем найденным именам).

  3. #3
    Хорошо, я отредактировал свой последний пост целую кучу раз. я остановлю его сейчас и оставлю в покое.

  4. #4

Действующие разрешения

  • Вы не можете создавать новые темы
  • Вы не можете размещать ответы
  • Вы не можете использовать вложения
  • Вы не можете редактировать ваши записи
  •  
  • BB-код - Вкл.
  • Смайлики - Вкл.
  • Код [IMG] - Вкл.
  • Код [VIDEO] - Вкл.
  • HTML-код - Выкл.
Веб-сайт использует cookies
Веб-сайт использует cookies, в настоящее время некоторые из них уже установлены. Вы можете ознакомиться с более подробной информацией об использовании нами cookies здесь. Чтобы принять условия использования cookies, пожалуйста, нажмите на кнопку справа. Если вы продолжаете пользоваться веб-сайтом, вы по умолчанию принимаете условия использования cookies.