+ Reply to Thread
Page 1 of 24 1 2 3 11 ... LastLast
Results 1 to 10 of 239

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

  1. #1
    kypa is online now
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    92,996
    Натрупан бонус
    24,649.16 USD
    Thanks
    155,149
    Thanked 35,959 Times in 15,152 Posts

    Конкретни проблеми и (евентуално) решения за 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.
    sleepwalking and lost

  2. #2
    kypa is online now
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    92,996
    Натрупан бонус
    24,649.16 USD
    Thanks
    155,149
    Thanked 35,959 Times in 15,152 Posts
    Някой ако има представа от тез работи да помага.
    Целта е да се направи скрипт да подрежда отворените в метатрайдера графики (или част от тях) в някакъв предварително зададен ред.
    Примерно както е Прозорец/Каскадно, само че да можем ръчно да зададем размери и местоположение на всяка графика при подреждането.
    По принцип туй нещо би трябвало да стане със Уиндоус АПИ-то, по-точно юзер32.длл. Ама какви функции и обръщения точно трябва да се извикат Божа работа.
    Code:
    #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
    sleepwalking and lost

  3. #3
    kypa is online now
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    92,996
    Натрупан бонус
    24,649.16 USD
    Thanks
    155,149
    Thanked 35,959 Times in 15,152 Posts
    Бай Кор взел да задобрява в програмизъма.

    windowresize.zip

    Code:
    //+------------------------------------------------------------------+
    //|                                                 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 от единичния към последната позиция на големия.
    sleepwalking and lost

  4. The Following User Says Thank You to kypa For This Useful Post:

    minkov (07-27-2017)

  5. #4
    kypa is online now
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    92,996
    Натрупан бонус
    24,649.16 USD
    Thanks
    155,149
    Thanked 35,959 Times in 15,152 Posts
    Скрипт за нещо средно между вертикално и каскадно подреждане на графиките (малко по-широки и се застъпват).
    windowresize 1.00.mq5.zip
    Нагласено е за 4 графики за МетаТрайдер (и 4, и 5) на цял екран Фул ХД, ама може да се ползва за шаблон и за друг брой графики/подредби/резолюции, то се вижда какво трябва да се промени.
    Графиката дето се пуска върху нея не трябва да е максимизирана и длл трябва да са му позволени.
    sleepwalking and lost

  6. The Following User Says Thank You to kypa For This Useful Post:

    presptc (07-28-2017)

  7. #5
    presptc is offline
    Централна банка
    Mengintai
     
    presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc's Avatar
    Join Date
    Dec 2012
    Пол
    мъж
    Posts
    17,774
    Натрупан бонус
    5,899.76 USD
    Thanks
    4,730
    Thanked 6,135 Times in 3,151 Posts
    Quote Originally Posted by kypa View Post
    Скрипт за нещо средно между вертикално и каскадно подреждане на графиките (малко по-широки и се застъпват).
    Attachment 3922
    Нагласено е за 4 графики за МетаТрайдер (и 4, и 5) на цял екран Фул ХД, ама може да се ползва за шаблон и за друг брой графики/подредби/резолюции, то се вижда какво трябва да се промени.
    Графиката дето се пуска върху нея не трябва да е максимизирана и длл трябва да са му позволени.

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

  8. The Following User Says Thank You to presptc For This Useful Post:

    kypa (07-28-2017)

  9. #6
    kypa is online now
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    92,996
    Натрупан бонус
    24,649.16 USD
    Thanks
    155,149
    Thanked 35,959 Times in 15,152 Posts
    МетаТрайдерите повече системно ефективни (от Интерцептора), отделно дето може да се дописват функции каквито си искаш. Нинджата и тя може, ама там си зависим от платформа и брокер (безплатния вариант поне). Ако им сбъгясат сървърите (което се случва един-два пъти на няколко месеца) трябва да отпишем половината ден. МетаТрайдерите не зависят и от операционната система толкоз.
    Интерцептора си го ползвам на тилихона де, за там още не съм видял нещо по-добро.
    sleepwalking and lost

  10. #7
    kypa is online now
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    92,996
    Натрупан бонус
    24,649.16 USD
    Thanks
    155,149
    Thanked 35,959 Times in 15,152 Posts
    Скрипта за подреждане на прозорците ъпдейт:
    Code:
    //+----------------------------------------------------------------------------------------------------+
    //|                                                                                   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
    sleepwalking and lost

  11. #8
    kypa is online now
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    92,996
    Натрупан бонус
    24,649.16 USD
    Thanks
    155,149
    Thanked 35,959 Times in 15,152 Posts
    Още малко кодец:
    stronkbar.zip
    индикатор за ръчно тестване на разни сетъпи дето се потвърждават от Здрава Права Свещ (малко над средната дължина, почти няма опашки, по принцип не прекалено дълга и с умерен обем, ама условия за максимална дължина и обем още няма написани).
    Да направи работите малко по-очевидни, евентуално някой ден може и в експерт да се включи.
    sleepwalking and lost

  12. The Following 2 Users Say Thank You to kypa For This Useful Post:

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

  13. #9
    kypa is online now
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    92,996
    Натрупан бонус
    24,649.16 USD
    Thanks
    155,149
    Thanked 35,959 Times in 15,152 Posts
    Скрипта за свободно влачене на графиката нагоре-надолу май най-добре работи в тоз му вид:

    Code:
    #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 няма смисъл.
    sleepwalking and lost

  14. The Following 2 Users Say Thank You to kypa For This Useful Post:

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

  15. #10
    kypa is online now
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    92,996
    Натрупан бонус
    24,649.16 USD
    Thanks
    155,149
    Thanked 35,959 Times in 15,152 Posts
    Скрипта за ръчно чертане на пивоти:

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

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

  16. The Following User Says Thank You to kypa For This Useful Post:

    mck. (08-09-2017)

+ Reply to Thread
Page 1 of 24 1 2 3 11 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts