LeadLagRelationshipTester

Author: Хасанов Ильнур Фаритович (aharata)
Miscellaneous
Uses files from the file systemIt writes information to file
0 Views
0 Downloads
0 Favorites
LeadLagRelationshipTester
ÿþ//+------------------------------------------------------------------+

//|                                    LeadLagRelationshipTester.mq5 |

//|                               %0A0=>2 ;L=C@ $0@8B>28G (aharata) |

//|                            https://www.mql5.com/ru/users/aharata |

//+------------------------------------------------------------------+

#property copyright "%0A0=>2 ;L=C@ $0@8B>28G (aharata)"

#property link "https://www.mql5.com/ru/users/aharata"

#property version "1.00"

#property description "!:@8?B 4;O ?@>25@:8 8=48:0B>@0 LeadLagRelationship"



sinput uint inpTimerPeriod = 100; // ?5@8>4 >A=>2=>3> B09<5@0 2 <A

sinput string inpFilename = "buffer.csv"; // =0720=85 D09;0 4;O >B?@02:8 :>B8@>2>: (\Terminal\Common\Files)

sinput string inpGlobalVariableAsk = "ask"; // =0720=85 3;>10;L=>9 ?5@5<5==>9 4;O 0A:

sinput string inpGlobalVariableBid = "bid"; // =0720=85 3;>10;L=>9 ?5@5<5==>9 4;O 184

sinput int inpUseMode = 0; // @568< :0=0;0; 0 - D09;, 2 - 3;>10;L=K5 ?5@<5==K5 B5@<8=0;0

sinput int inpSetLag = 12000; // 7040==>5 >BAB020=85 2 <A



uint msCounter, memMsCounter = 0;

MqlTick tick, ticks[];

int sizeTicks = 0;

int fileHandle;



void OnStart()

{

   if(!EventSetMillisecondTimer(inpTimerPeriod)) // :>;8G5AB2> <8;;8A5:C=4 

   {

      Print("H81:0 CAB0=>2:8 B09<5@0, :>4 >H81:8:" + IntegerToString(GetLastError()));

      ResetLastError();

   }



   sizeTicks = (int)MathRound(inpSetLag / inpTimerPeriod);

   ArrayResize(ticks, sizeTicks, sizeTicks);



   while(!IsStopped())

   {

      msCounter = GetTickCount();

      if(msCounter - memMsCounter >= inpTimerPeriod) 

      {

         SymbolInfoTick(Symbol(), tick);

         

         ticks[0] = tick;

         for(int i = sizeTicks - 1; i > 0; i--)

         {

            ticks[i] = ticks[i - 1];

         }

         tick = ticks[sizeTicks - 1];

         

         if(inpUseMode == 0)

         {

            fileHandle = FileOpen(inpFilename, FILE_WRITE|FILE_CSV|FILE_COMMON|FILE_SHARE_READ|FILE_SHARE_WRITE);

            if(fileHandle != INVALID_HANDLE)

            {

               FileWrite(fileHandle, tick.ask, tick.bid);

               FileFlush(fileHandle);

               FileClose(fileHandle);

            }

            Sleep(1);            

         }

         

         if(inpUseMode == 2)

         {

            GlobalVariableSet(inpGlobalVariableAsk, tick.ask);

            GlobalVariableSet(inpGlobalVariableBid, tick.bid);

         }

         

         memMsCounter = msCounter;

      }

   }



   EventKillTimer(); 

   if(inpUseMode == 0)

   {

      if(fileHandle != INVALID_HANDLE)

      {

         FileClose(fileHandle);

      }

   }

}

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---