Earn up to
$50000
for inviting friends
to get StartUp Bonus
from InstaForex
No investments required!
Започнете да търгувате
без никакви инвестиции
и рискове
С НОВИЯ СТАРТЪП
БОНУС 1000$
GET BONUS
55%
from InstaForex
on every deposit
+ Reply to Thread
Page 1 of 21 1 2 3 11 ... LastLast
Results 1 to 10 of 202

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

  1. #1
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    67,338
    Натрупан бонус
    19880.43 USD
    Thanks
    123,198
    Thanked 18,165 Times in 10,147 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.

  2. Loprais
  3. #2
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    67,338
    Натрупан бонус
    19880.43 USD
    Thanks
    123,198
    Thanked 18,165 Times in 10,147 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

  4. #3
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    67,338
    Натрупан бонус
    19880.43 USD
    Thanks
    123,198
    Thanked 18,165 Times in 10,147 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 от единичния към последната позиция на големия.

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

    minkov (07-27-2017)

  6. #4
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    67,338
    Натрупан бонус
    19880.43 USD
    Thanks
    123,198
    Thanked 18,165 Times in 10,147 Posts
    Скрипт за нещо средно между вертикално и каскадно подреждане на графиките (малко по-широки и се застъпват).
    windowresize 1.00.mq5.zip
    Нагласено е за 4 графики за МетаТрайдер (и 4, и 5) на цял екран Фул ХД, ама може да се ползва за шаблон и за друг брой графики/подредби/резолюции, то се вижда какво трябва да се промени.
    Графиката дето се пуска върху нея не трябва да е максимизирана и длл трябва да са му позволени.

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

    presptc (07-28-2017)

  8. #5
    Централна банка
    Mengintai
     
    presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc е отвъд представите presptc's Avatar
    Join Date
    Dec 2012
    Пол
    мъж
    Posts
    12,267
    Натрупан бонус
    3576.65 USD
    Thanks
    402
    Thanked 2,316 Times in 2,055 Posts
    Quote Originally Posted by kypa View Post
    Скрипт за нещо средно между вертикално и каскадно подреждане на графиките (малко по-широки и се застъпват).
    Attachment 3922
    Нагласено е за 4 графики за МетаТрайдер (и 4, и 5) на цял екран Фул ХД, ама може да се ползва за шаблон и за друг брой графики/подредби/резолюции, то се вижда какво трябва да се промени.
    Графиката дето се пуска върху нея не трябва да е максимизирана и длл трябва да са му позволени.

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

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

    kypa (07-28-2017)

  10. #6
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    67,338
    Натрупан бонус
    19880.43 USD
    Thanks
    123,198
    Thanked 18,165 Times in 10,147 Posts
    МетаТрайдерите повече системно ефективни (от Интерцептора), отделно дето може да се дописват функции каквито си искаш. Нинджата и тя може, ама там си зависим от платформа и брокер (безплатния вариант поне). Ако им сбъгясат сървърите (което се случва един-два пъти на няколко месеца) трябва да отпишем половината ден. МетаТрайдерите не зависят и от операционната система толкоз.
    Интерцептора си го ползвам на тилихона де, за там още не съм видял нещо по-добро.

  11. #7
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    67,338
    Натрупан бонус
    19880.43 USD
    Thanks
    123,198
    Thanked 18,165 Times in 10,147 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

  12. #8
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    67,338
    Натрупан бонус
    19880.43 USD
    Thanks
    123,198
    Thanked 18,165 Times in 10,147 Posts
    Още малко кодец:
    stronkbar.zip
    индикатор за ръчно тестване на разни сетъпи дето се потвърждават от Здрава Права Свещ (малко над средната дължина, почти няма опашки, по принцип не прекалено дълга и с умерен обем, ама условия за максимална дължина и обем още няма написани).
    Да направи работите малко по-очевидни, евентуално някой ден може и в експерт да се включи.

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

    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's Avatar
    Join Date
    Jan 2013
    Posts
    67,338
    Натрупан бонус
    19880.43 USD
    Thanks
    123,198
    Thanked 18,165 Times in 10,147 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 няма смисъл.

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

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

  16. <a href="https://www.instaforex.com/company_news">Форекс портал</a>
  17. #10
    Централна банка
    Suka Mengoceh
     
    kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa е отвъд представите kypa's Avatar
    Join Date
    Jan 2013
    Posts
    67,338
    Натрупан бонус
    19880.43 USD
    Thanks
    123,198
    Thanked 18,165 Times in 10,147 Posts
    Скрипта за ръчно чертане на пивоти:

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

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

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

    mck. (08-09-2017)

+ Reply to Thread
Page 1 of 21 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