Започнете да търгувате
без никакви инвестиции
и рискове
С НОВИЯ СТАРТЪП
БОНУС 1000$
ВЗЕМИ БОНУС
55%
от ИнстаФорекс
за всеки депозит
+ Отговор в тема
Страница 1 от 3 1 2 3 ПоследнаПоследна
Резултати от 1 до 10 от общо 26

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

  1. #1
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    65 151
    Натрупан бонус
    18618.60 USD
    Благодарности
    103 546
    Благодарили са му 12 086 Пъти в 8 159 Поста

    Конкретни проблеми и (евентуално) решения за 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. <a href="http://www.mt5.com/forex_humor">Форекс портал</a>
  3. #2
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    65 151
    Натрупан бонус
    18618.60 USD
    Благодарности
    103 546
    Благодарили са му 12 086 Пъти в 8 159 Поста
    Някой ако има представа от тез работи да помага.
    Целта е да се направи скрипт да подрежда отворените в метатрайдера графики (или част от тях) в някакъв предварително зададен ред.
    Примерно както е Прозорец/Каскадно, само че да можем ръчно да зададем размери и местоположение на всяка графика при подреждането.
    По принцип туй нещо би трябвало да стане със Уиндоус АПИ-то, по-точно юзер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
    Мнения
    65 151
    Натрупан бонус
    18618.60 USD
    Благодарности
    103 546
    Благодарили са му 12 086 Пъти в 8 159 Поста
    Бай Кор взел да задобрява в програмизъма.

    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 (07-27-2017)

  6. #4
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    65 151
    Натрупан бонус
    18618.60 USD
    Благодарности
    103 546
    Благодарили са му 12 086 Пъти в 8 159 Поста
    Скрипт за нещо средно между вертикално и каскадно подреждане на графиките (малко по-широки и се застъпват).
    windowresize 1.00.mq5.zip
    Нагласено е за 4 графики за МетаТрайдер (и 4, и 5) на цял екран Фул ХД, ама може да се ползва за шаблон и за друг брой графики/подредби/резолюции, то се вижда какво трябва да се промени.
    Графиката дето се пуска върху нея не трябва да е максимизирана и длл трябва да са му позволени.

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

    presptc (07-28-2017)

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

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

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

    kypa (07-28-2017)

  10. #6
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    65 151
    Натрупан бонус
    18618.60 USD
    Благодарности
    103 546
    Благодарили са му 12 086 Пъти в 8 159 Поста
    МетаТрайдерите повече системно ефективни (от Интерцептора), отделно дето може да се дописват функции каквито си искаш. Нинджата и тя може, ама там си зависим от платформа и брокер (безплатния вариант поне). Ако им сбъгясат сървърите (което се случва един-два пъти на няколко месеца) трябва да отпишем половината ден. МетаТрайдерите не зависят и от операционната система толкоз.
    Интерцептора си го ползвам на тилихона де, за там още не съм видял нещо по-добро.

  11. #7
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    65 151
    Натрупан бонус
    18618.60 USD
    Благодарности
    103 546
    Благодарили са му 12 086 Пъти в 8 159 Поста
    Скрипта за подреждане на прозорците ъпдейт:
    Код:
    //+----------------------------------------------------------------------------------------------------+
    //|                                                                                   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

  12. #8
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    65 151
    Натрупан бонус
    18618.60 USD
    Благодарности
    103 546
    Благодарили са му 12 086 Пъти в 8 159 Поста
    Още малко кодец:
    stronkbar.zip
    индикатор за ръчно тестване на разни сетъпи дето се потвърждават от Здрава Права Свещ (малко над средната дължина, почти няма опашки, по принцип не прекалено дълга и с умерен обем, ама условия за максимална дължина и обем още няма написани).
    Да направи работите малко по-очевидни, евентуално някой ден може и в експерт да се включи.

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

    borkooo_pz (07-30-2017), minkov (07-31-2017)

  14. #9
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    65 151
    Натрупан бонус
    18618.60 USD
    Благодарности
    103 546
    Благодарили са му 12 086 Пъти в 8 159 Поста
    Скрипта за свободно влачене на графиката нагоре-надолу май най-добре работи в тоз му вид:

    Код:
    #import "user32.dll"
       void keybd_event(int bVk, int bScan, int dwFlags, int dwExtraInfo);
    #import
    
    void OnStart()
      {          
       if(ChartGetInteger(0,CHART_SCALEFIX,0)==0) ChartSetInteger(0,CHART_SCALEFIX,1);
       
       ChartSetDouble(0,CHART_FIXED_MIN,0);
       ChartSetDouble(0,CHART_FIXED_MAX,2*SymbolInfoDouble(Symbol(),SYMBOL_BID));
    
       ChartRedraw();
       
       keybd_event(0x65,0,0,0);
       keybd_event(0x65,0,0x0002,0);
       
       ChartRedraw();
      }
    Само за МетаТрайдер 5 става. На 4 няма смисъл.

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

    aaangelll (08-01-2017), minkov (08-01-2017)

  16. FB
  17. #10
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите Аватара на kypa
    Регистриран на
    Jan 2013
    Мнения
    65 151
    Натрупан бонус
    18618.60 USD
    Благодарности
    103 546
    Благодарили са му 12 086 Пъти в 8 159 Поста
    Скрипта за ръчно чертане на пивоти:

    ПивотьСкръцпть.zip

    Преместваме трите етикета до върха, дъното и затварянето по които искаме пивот нивата и натискаме бутона. Няма значение кой етикет на коя точка се слага, скрипта разпознава най-ниска, средна и най-висока ценова стойност на етикетите.
    Ако чертаем нещо различно от дневни пивот нива или искаме да ползваме скрипта на МТ4 предпоследния абзац (за таймфреймовете, задава линиите да се показват само от 30 минути надолу) трябва да се промени адекватно или да се махне.

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

    mck. (08-09-2017)

+ Отговор в тема
Страница 1 от 3 1 2 3 ПоследнаПоследна

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

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