+ Отговор в тема
Резултати от 1 до 7 от общо 7

Тема: Конкретни проблеми и (евентуално) решения за MQL4 и MQL5 кодь

  1. #1
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    64 035
    Accumulated bonus
    18294.70 USD
    Благодарности
    94 644
    Благодарили са му 9 782 Пъти в 7 153 Поста

    Конкретни проблеми и (евентуално) решения за MQL4 и MQL5 кодь

    Тука да се пита (и отговаря) за конкретни работи дето се мъчим да напишем, обаче или не се сещаме как или не е възможно (и съответно трябва да се измисли нещо друго допълнително).

    Първия проблем язе да поставя - как да се направи CopyRates и CopyBuffer когато са зададени по начално и крайно време (третия вариант на функцията) да копират само някакъв брой котировки, а не целия масив (както се случва със задаване на начална и крайна позиция и prev_calculated/rates_total).

    https://www.mql5.com/en/docs/series/copyrates
    https://docs.mql4.com/series/copyrates
    https://www.mql5.com/en/docs/series/copybuffer

    Проблема е валиден и за MQL4, и за MQL5.

  2. FB
  3. #2
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    64 035
    Accumulated bonus
    18294.70 USD
    Благодарности
    94 644
    Благодарили са му 9 782 Пъти в 7 153 Поста
    Някой ако има представа от тез работи да помага.
    Целта е да се направи скрипт да подрежда отворените в метатрайдера графики (или част от тях) в някакъв предварително зададен ред.
    Примерно както е Прозорец/Каскадно, само че да можем ръчно да зададем размери и местоположение на всяка графика при подреждането.
    По принцип туй нещо би трябвало да стане със Уиндоус АПИ-то, по-точно юзер32.длл. Ама какви функции и обръщения точно трябва да се извикат Божа работа.
    Код:
    #import "user32.dll"
       bool SetWindowPos(int hWnd, int hWndInsertAfter, int x, int y, int width, int height, uint uFlags);
       int GetParent(int hWnd);
       int GetClientRect(int hWnd,int &arr[]);
       bool InvalidateRect(int hWnd,int &arr[],bool);
    #import
    
    void OnStart()
      {
       long charthandle;
       int parenthandle;
       int arrr[4];
       ChartGetInteger(0,CHART_WINDOW_HANDLE,0,charthandle);
       Sleep(1000);
       /*GetParent(charthandle);
       GetClientRect(parenthandle,arrr);
       InvalidateRect(parenthandle,arrr,true);
       SetWindowPos(charthandle,0,0,0,700,700,0x0004|0x0010);*/
       GetClientRect(charthandle,arrr);
       Sleep(1000);
       SetWindowPos(charthandle,0,0,0,700,700,0x0004|0x0010);
       Sleep(1000);   
       InvalidateRect(charthandle,arrr,true);   
      }
    //+------------------------------------------------------------------+
    Кодь за скрипт е туй, ама променя размерите само на графиката, не и на рамката на прозореца около нея.
    Тука пише разни работи:
    https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
    https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
    https://stackoverflow.com/questions/...w-size-c-sharp
    https://www.mql5.com/en/code/viewcod...putResizer.mq4

  4. #3
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    64 035
    Accumulated bonus
    18294.70 USD
    Благодарности
    94 644
    Благодарили са му 9 782 Пъти в 7 153 Поста
    Бай Кор взел да задобрява в програмизъма.

    windowresize.zip

    Код:
    //+------------------------------------------------------------------+
    //|                                                 windowresize.mq5 |
    //+------------------------------------------------------------------+
    
    #import "user32.dll"
       int GetParent(int hWnd);
       bool SetWindowPos(int hWnd, int hWndInsertAfter, int x, int y, int width, int height, uint uFlags);
    #import
    
    void OnStart()
      {
       long charthandle;
       int parenthandle;
       int arrr[4];
       ChartGetInteger(0,CHART_WINDOW_HANDLE,0,charthandle);
       parenthandle=GetParent(charthandle);
       SetWindowPos(parenthandle,0,100,200,700,500,0x0004|0x0010);
      }
      
    //+------------------------------------------------------------------+

    Проблема от първия пост май единствения начин да се реши е с два ценови масива (втория с една позиция само) и arraycopy от единичния към последната позиция на големия.

  5. Следният потребител изказва благодарност на kypa за полезния пост:

    minkov (Вчера)

  6. #4
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    64 035
    Accumulated bonus
    18294.70 USD
    Благодарности
    94 644
    Благодарили са му 9 782 Пъти в 7 153 Поста
    Скрипт за нещо средно между вертикално и каскадно подреждане на графиките (малко по-широки и се застъпват).
    windowresize 1.00.mq5.zip
    Нагласено е за 4 графики за МетаТрайдер (и 4, и 5) на цял екран Фул ХД, ама може да се ползва за шаблон и за друг брой графики/подредби/резолюции, то се вижда какво трябва да се промени.
    Графиката дето се пуска върху нея не трябва да е максимизирана и длл трябва да са му позволени.

  7. Следният потребител изказва благодарност на kypa за полезния пост:

    presptc (Днес)

  8. #5
    Централна банка
    Mengintai
     
    presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите Аватара на presptc
    Регистриран на
    Dec 2012
    Пол
    мъж
    Мнения
    12 013
    Accumulated bonus
    1421.22 USD
    Благодарности
    331
    Благодарили са му 2 004 Пъти в 1 844 Поста
    Цитирай Първоначално написано от kypa Виж мнението
    Скрипт за нещо средно между вертикално и каскадно подреждане на графиките (малко по-широки и се застъпват).
    Прикачен файл 3922
    Нагласено е за 4 графики за МетаТрайдер (и 4, и 5) на цял екран Фул ХД, ама може да се ползва за шаблон и за друг брой графики/подредби/резолюции, то се вижда какво трябва да се промени.
    Графиката дето се пуска върху нея не трябва да е максимизирана и длл трябва да са му позволени.

    kypa, ти не ползваше ли други платформи за търговия? На какво се дължи завоя обратно към mt4 и mt5?

  9. Следният потребител изказва благодарност на presptc за полезния пост:

    kypa (Днес)

  10. #6
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    64 035
    Accumulated bonus
    18294.70 USD
    Благодарности
    94 644
    Благодарили са му 9 782 Пъти в 7 153 Поста
    МетаТрайдерите повече системно ефективни (от Интерцептора), отделно дето може да се дописват функции каквито си искаш. Нинджата и тя може, ама там си зависим от платформа и брокер (безплатния вариант поне). Ако им сбъгясат сървърите (което се случва един-два пъти на няколко месеца) трябва да отпишем половината ден. МетаТрайдерите не зависят и от операционната система толкоз.
    Интерцептора си го ползвам на тилихона де, за там още не съм видял нещо по-добро.

  11. <a href="http://www.mt5.com/">Форекс портал</a>
  12. #7
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    64 035
    Accumulated bonus
    18294.70 USD
    Благодарности
    94 644
    Благодарили са му 9 782 Пъти в 7 153 Поста
    Скрипта за подреждане на прозорците ъпдейт:
    Код:
    //+----------------------------------------------------------------------------------------------------+
    //|                                                                                   windowresize.mq5 |
    //+----------------------------------------------------------------------------------------------------+
    
    #import "user32.dll"
       int GetParent(int hWnd);
       bool SetWindowPos(int hWnd, int hWndInsertAfter, int x, int y, int width, int height, uint uFlags);
       void keybd_event(int bVk, int bScan, int dwFlags, int dwExtraInfo);
    #import
    
    void OnStart()
      {
       if(ChartGetInteger(0,CHART_IS_MAXIMIZED,0)==1)
         {
          keybd_event(0x12,0,0,0);
          keybd_event(0x52,0,0,0);
          keybd_event(0x12,0,0x0002,0);
          keybd_event(0x52,0,0x0002,0);
         }
         
       long FirstChartID = ChartFirst();
       long SecondChartID = ChartNext(FirstChartID);
       long ThirdChartID = ChartNext(SecondChartID);
       long FourthChartID = ChartNext(ThirdChartID);
       
       long FirstChartHandle, SecondChartHandle, ThirdChartHandle, FourthChartHandle;
       int FirstChartParentHandle, SecondChartParentHandle, ThirdChartParentHandle, FourthChartParentHandle;
       
       ChartGetInteger(FirstChartID,CHART_WINDOW_HANDLE,0,FirstChartHandle);
       ChartGetInteger(SecondChartID,CHART_WINDOW_HANDLE,0,SecondChartHandle);
       ChartGetInteger(ThirdChartID,CHART_WINDOW_HANDLE,0,ThirdChartHandle);
       ChartGetInteger(FourthChartID,CHART_WINDOW_HANDLE,0,FourthChartHandle);
       
       FirstChartParentHandle=GetParent(FirstChartHandle);
       SecondChartParentHandle=GetParent(SecondChartHandle);
       ThirdChartParentHandle=GetParent(ThirdChartHandle);
       FourthChartParentHandle=GetParent(FourthChartHandle);
       
       SetWindowPos(FourthChartParentHandle,0,1276,0,640,958,0);
       SetWindowPos(ThirdChartParentHandle,0,900,0,640,958,0);
       SetWindowPos(SecondChartParentHandle,0,450,0,640,958,0);
       SetWindowPos(FirstChartParentHandle,0,0,0,620,958,0);
      }
      
    //+----------------------------------------------------------------------------------------------------+
    Кейбд_евент изпраща команда алт+Р за мозаично подреждане на графиките ако графиката е максимизирана, т.е. вече работи и на максимизирана графика.

    И другия моя скрипт дето позволява свободно влачене на графиката нагоре-надолу (МТ5 прави едни мискинлъци след смяна на таймфрейма ако мащаба на графиката е фиксиран) ремонтиран:

    МащабСкръцпт 2.00.mq5.zip

+ Отговор в тема

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си