Orders Execution
Checks for the total of open ordersIt can change open orders parameters, due to possible stepping strategy
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
Trall_007
//+------------------------------------------------------------------+
//|                                                    Òðàëë 007.mq4 |
//|                                                          sever11 |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "sever11" // àâòîð 
#property link      ""       // ðàçðàáîò÷èê "scriptong@mail.ru"

//---- input parameters

extern string    A1="Êîììåíòàðèé 1-ãî òèïà è óñòàíîâêè â ïóíêòàõ";  
extern string    Comment1="1";
extern int       SL10 = 177;
extern int       TP10 = 9600;
extern int       SL11=6;     //ñòîï â áåçóáûòîê + 6 ïï. ñòàâèì
extern int       Prof11 = 153;//ïðè äîñòèæåíèè ïðîôèòà â 153 ïï.
extern int       SL12=60;     //ñòîï â áåçóáûòîê + 60 ïï. ñòàâèì
extern int       Prof12 = 261;//ïðè äîñòèæåíèè ïðîôèòà â 261 ïï.
extern int       SL13=261;     //ñòîï â áåçóáûòîê + 261 ïï. ñòàâèì
extern int       Prof13 = 546;//ïðè äîñòèæåíèè ïðîôèòà â 546 ïï.
extern int       SL14=546;     //ñòîï â áåçóáûòîê + 546 ïï. ñòàâèì
extern int       Prof14 = 1950;//ïðè äîñòèæåíèè ïðîôèòà â 1950 ïï.
extern int       SL15=960;     //ñòîï â áåçóáûòîê + 960 ïï. ñòàâèì
extern int       Prof15 = 2319;//ïðè äîñòèæåíèè ïðîôèòà â 2319 ïï.
extern int       SL16=1950;     //ñòîï â áåçóáûòîê + 1950 ïï. ñòàâèì
extern int       Prof16 = 3650;//ïðè äîñòèæåíèè ïðîôèòà â 3650 ïï..
extern int       SL17=3561;     //ñòîï â áåçóáûòîê + 3561 ïï. ñòàâèì
extern int       Prof17 = 5831;//ïðè äîñòèæåíèè ïðîôèòà â 5831 ïï.
extern int       SL18=4570;     //ñòîï â áåçóáûòîê + 4570 ïï. ñòàâèì
extern int       Prof18 = 6360;//ïðè äîñòèæåíèè ïðîôèòà â 6360 ïï.
extern int       SL19=5460;     //ñòîï â áåçóáûòîê + 5460 ïï. ñòàâèì
extern int       Prof19 = 7218;//ïðè äîñòèæåíèè ïðîôèòà â 7218 ïï.
extern string    A1_1="========================================";
extern string    A2="Êîììåíòàðèé 2-ãî òèïà è óñòàíîâêè â ïóíêòàõ"; 
extern string    Comment2="2";
extern int       SL20=177; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP20=10440; // òýéêïðîôèò
extern int       SL21=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì
extern int       Prof21 = 167;//ïðè äîñòèæåíèè ïðîôèòà â 167 ïï.
extern int       SL22=32;     //ñòîï â áåçóáûòîê + 32 ïï. ñòàâèì
extern int       Prof22 = 267;//ïðè äîñòèæåíèè ïðîôèòà â 267 ïï.
extern int       SL23=261;     //ñòîï â áåçóáûòîê + 261 ïï. ñòàâèì
extern int       Prof23 = 685;//ïðè äîñòèæåíèè ïðîôèòà â 685 ïï.
extern int       SL24=630;     //ñòîï â áåçóáûòîê + 630 ïï. ñòàâèì
extern int       Prof24 = 1554;//ïðè äîñòèæåíèè ïðîôèòà â 1554 ïï.
extern int       SL25=915;     //ñòîï â áåçóáûòîê + 915 ïï. ñòàâèì
extern int       Prof25 = 2188;//ïðè äîñòèæåíèè ïðîôèòà â 2188 ïï.
extern int       SL26=1650;     //ñòîï â áåçóáûòîê + 1650 ïï. ñòàâèì
extern int       Prof26 = 2853;//ïðè äîñòèæåíèè ïðîôèòà â 2853 ïï.
extern int       SL27=2752;     //ñòîï â áåçóáûòîê + 2752 ïï. ñòàâèì
extern int       Prof27 = 3660;//ïðè äîñòèæåíèè ïðîôèòà â 3660 ïï.
extern int       SL28=3660;     //ñòîï â áåçóáûòîê + 3660 ïï. ñòàâèì
extern int       Prof28 = 4290;//ïðè äîñòèæåíèè ïðîôèòà â 4290 ïï.
extern int       SL29=4140;     //ñòîï â áåçóáûòîê + 4140 ïï. ñòàâèì
extern int       Prof29 = 5910;//ïðè äîñòèæåíèè ïðîôèòà â 5910 ïï.
extern string    A2_1="========================================";
extern string    A3="Êîììåíòàðèé 3-ãî òèïà è óñòàíîâêè â ïóíêòàõ";  
extern string    Comment3="3";
extern int       SL30=188; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP30=4970; // òýéêïðîôèò
extern int       SL31=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì
extern int       Prof31 = 168;//ïðè äîñòèæåíèè ïðîôèòà â 168 ïï.
extern int       SL32=68;     //ñòîï â áåçóáûòîê + 68 ïï. ñòàâèì
extern int       Prof32 = 339;//ïðè äîñòèæåíèè ïðîôèòà â 339 ïï.
extern int       SL33=142;     //ñòîï â áåçóáûòîê + 142 ïï. ñòàâèì
extern int       Prof33 = 572;//ïðè äîñòèæåíèè ïðîôèòà â 572 ïï.
extern int       SL34=264;     //ñòîï â áåçóáûòîê + 264 ïï. ñòàâèì
extern int       Prof34 = 715;//ïðè äîñòèæåíèè ïðîôèòà â 715 ïï.
extern int       SL35=753;     //ñòîï â áåçóáûòîê + 753 ïï. ñòàâèì
extern int       Prof35 = 1355;//ïðè äîñòèæåíèè ïðîôèòà â 1355 ïï.
extern int       SL36=1129;     //ñòîï â áåçóáûòîê + 1129 ïï. ñòàâèì
extern int       Prof36 = 1506;//ïðè äîñòèæåíèè ïðîôèòà â 1506 ïï.
extern int       SL37=1204;     //ñòîï â áåçóáûòîê + 1204 ïï. ñòàâèì
extern int       Prof37 = 2108;//ïðè äîñòèæåíèè ïðîôèòà â 2108 ïï.
extern int       SL38=1506;     //ñòîï â áåçóáûòîê + 1506 ïï. ñòàâèì
extern int       Prof38 = 2560;//ïðè äîñòèæåíèè ïðîôèòà â 2560 ïï.
extern int       SL39=2108;     //ñòîï â áåçóáûòîê + 2108 ïï. ñòàâèì
extern int       Prof39 = 3012;//ïðè äîñòèæåíèè ïðîôèòà â 3012 ïï.
extern string    A3_1="========================================";
extern string    A4="Êîììåíòàðèé 4-ãî òèïà è óñòàíîâêè â ïóíêòàõ"; 
extern string    Comment4="4";
extern int       SL40=237; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP40=6029; // òýéêïðîôèò
extern int       SL41=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì
extern int       Prof41 = 186;//ïðè äîñòèæåíèè ïðîôèòà â 186 ïï.
extern int       SL42=72;     //ñòîï â áåçóáûòîê + 72 ïï. ñòàâèì
extern int       Prof42 = 425;//ïðè äîñòèæåíèè ïðîôèòà â 425 ïï.
extern int       SL43=188;     //ñòîï â áåçóáûòîê + 188 ïï. ñòàâèì
extern int       Prof43 = 825;//ïðè äîñòèæåíèè ïðîôèòà â 825 ïï.
extern int       SL44=288;     //ñòîï â áåçóáûòîê + 288 ïï. ñòàâèì
extern int       Prof44 = 949;//ïðè äîñòèæåíèè ïðîôèòà â 949 ïï.
extern int       SL45=932;     //ñòîï â áåçóáûòîê + 932 ïï. ñòàâèì
extern int       Prof45 = 1708;//ïðè äîñòèæåíèè ïðîôèòà â 1708 ïï.
extern int       SL46=1425;     //ñòîï â áåçóáûòîê + 1425 ïï. ñòàâèì
extern int       Prof46 = 1898;//ïðè äîñòèæåíèè ïðîôèòà â 1898 ïï.
extern int       SL47=1518;     //ñòîï â áåçóáûòîê + 1518 ïï. ñòàâèì
extern int       Prof47 = 2657;//ïðè äîñòèæåíèè ïðîôèòà â 2657 ïï.
extern int       SL48=1898;     //ñòîï â áåçóáûòîê + 1898 ïï. ñòàâèì
extern int       Prof48 = 3227;//ïðè äîñòèæåíèè ïðîôèòà â 3227 ïï.
extern int       SL49=2657;     //ñòîï â áåçóáûòîê + 2657 ïï. ñòàâèì
extern int       Prof49 = 3796;//ïðè äîñòèæåíèè ïðîôèòà â 5469 ïï.
extern string    A4_1="========================================";
extern string    A5="Êîììåíòàðèé 5-ãî òèïà è óñòàíîâêè â ïóíêòàõ"; 
extern string    Comment5="5";
extern int       SL50=300; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP50=7286; // òýéêïðîôèò
extern int       SL51=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì
extern int       Prof51 = 339;//ïðè äîñòèæåíèè ïðîôèòà â 339 ïï.
extern int       SL52=124;     //ñòîï â áåçóáûòîê + 124 ïï. ñòàâèì
extern int       Prof52 = 608;//ïðè äîñòèæåíèè ïðîôèòà â 608 ïï.
extern int       SL53=248;     //ñòîï â áåçóáûòîê + 248 ïï. ñòàâèì
extern int       Prof53 = 950;//ïðè äîñòèæåíèè ïðîôèòà â 950 ïï.
extern int       SL54=590;     //ñòîï â áåçóáûòîê + 590 ïï. ñòàâèì
extern int       Prof54 = 1265;//ïðè äîñòèæåíèè ïðîôèòà â 1265 ïï.
extern int       SL55=1196;     //ñòîï â áåçóáûòîê + 1196 ïï. ñòàâèì
extern int       Prof55 = 2152;//ïðè äîñòèæåíèè ïðîôèòà â 2152 ïï.
extern int       SL56=1725;     //ñòîï â áåçóáûòîê + 1725 ïï. ñòàâèì
extern int       Prof56 = 3357;//ïðè äîñòèæåíèè ïðîôèòà â 3357 ïï.
extern int       SL57=2398;     //ñòîï â áåçóáûòîê + 2398 ïï. ñòàâèì
extern int       Prof57 = 4077;//ïðè äîñòèæåíèè ïðîôèòà â 4077 ïï.
extern int       SL58=3357;     //ñòîï â áåçóáûòîê + 3357 ïï. ñòàâèì
extern int       Prof58 = 4796;//ïðè äîñòèæåíèè ïðîôèòà â 4796 ïï.
extern int       SL59=5036;     //ñòîï â áåçóáûòîê + 5036 ïï. ñòàâèì
extern int       Prof59 = 5995;//ïðè äîñòèæåíèè ïðîôèòà â 5995 ïï.
extern string    A5_1="========================================";
extern string    A6="Êîììåíòàðèé 6-ãî òèïà è óñòàíîâêè â ïóíêòàõ"; 
extern string    Comment6="6";
extern int       SL60=390; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP60=8736; // òýéêïðîôèò
extern int       SL61=1;     //ñòîï â áåçóáûòîê + 1 ïï. ñòàâèì
extern int       Prof61 = 396;//ïðè äîñòèæåíèè ïðîôèòà â 396 ïï.
extern int       SL62=50;     //ñòîï â áåçóáûòîê + 50 ïï. ñòàâèì
extern int       Prof62 = 650;//ïðè äîñòèæåíèè ïðîôèòà â 650 ïï.
extern int       SL63=266;     //ñòîï â áåçóáûòîê + 266 ïï. ñòàâèì
extern int       Prof63 = 1290;//ïðè äîñòèæåíèè ïðîôèòà â 1290 ïï.
extern int       SL64=1300;     //ñòîï â áåçóáûòîê + 1300 ïï. ñòàâèì
extern int       Prof64 = 2340;//ïðè äîñòèæåíèè ïðîôèòà â 2340 ïï.
extern int       SL65=1950;     //ñòîï â áåçóáûòîê + 1950 ïï. ñòàâèì
extern int       Prof65 = 2640;//ïðè äîñòèæåíèè ïðîôèòà â 2640 ïï.
extern int       SL66=2080;     //ñòîï â áåçóáûòîê + 2080 ïï. ñòàâèì
extern int       Prof66 = 3640;//ïðè äîñòèæåíèè ïðîôèòà â 3640 ïï.
extern int       SL67=2600;     //ñòîï â áåçóáûòîê + 2600 ïï. ñòàâèì
extern int       Prof67 = 4420;//ïðè äîñòèæåíèè ïðîôèòà â 4420 ïï.
extern int       SL68=3640;     //ñòîï â áåçóáûòîê + 3640 ïï. ñòàâèì
extern int       Prof68 = 5200;//ïðè äîñòèæåíèè ïðîôèòà â 5200 ïï.
extern int       SL69=5454;     //ñòîï â áåçóáûòîê + 5454 ïï. ñòàâèì
extern int       Prof69 = 6500;//ïðè äîñòèæåíèè ïðîôèòà â 6500 ïï.
extern string    A6_1="========================================";
extern string    A7="Êîììåíòàðèé 7-ãî òèïà è óñòàíîâêè â ïóíêòàõ"; 
extern string    Comment7="7";
extern int       SL70=701; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP70=12868; // òýéêïðîôèò
extern int       SL71=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì
extern int       Prof71 = 586;//ïðè äîñòèæåíèè ïðîôèòà â 586 ïï.
extern int       SL72=51;     //ñòîï â áåçóáûòîê + 51 ïï. ñòàâèì
extern int       Prof72 = 940;//ïðè äîñòèæåíèè ïðîôèòà â 940 ïï.
extern int       SL73=418;     //ñòîï â áåçóáûòîê + 418 ïï. ñòàâèì
extern int       Prof73 = 1985;//ïðè äîñòèæåíèè ïðîôèòà â 1985 ïï.
extern int       SL74=2086;     //ñòîï â áåçóáûòîê + 2086 ïï. ñòàâèì
extern int       Prof74 = 3755;//ïðè äîñòèæåíèè ïðîôèòà â 3755 ïï.
extern int       SL75=3130;     //ñòîï â áåçóáûòîê + 3130 ïï. ñòàâèì
extern int       Prof75 = 4172;//ïðè äîñòèæåíèè ïðîôèòà â 4172 ïï.
extern int       SL76=3134;     //ñòîï â áåçóáûòîê + 3134 ïï. ñòàâèì
extern int       Prof76 = 5850;//ïðè äîñòèæåíèè ïðîôèòà â 5850 ïï.
extern int       SL77=4172;     //ñòîï â áåçóáûòîê + 4172 ïï. ñòàâèì
extern int       Prof77 = 7092;//ïðè äîñòèæåíèè ïðîôèòà â 7092 ïï.
extern int       SL78=5849;     //ñòîï â áåçóáûòîê + 5849 ïï. ñòàâèì
extern int       Prof78 = 8356;//ïðè äîñòèæåíèè ïðîôèòà â 8356 ïï.
extern int       SL79=8874;     //ñòîï â áåçóáûòîê + 8874 ïï. ñòàâèì
extern int       Prof79 = 10445;//ïðè äîñòèæåíèè ïðîôèòà â 10445 ïï.
extern string    A7_1="========================================"; 
extern string    A8="Êîììåíòàðèé 8-ãî òèïà è óñòàíîâêè â ïóíêòàõ";   
extern string    Comment8="8";
extern int       SL80=688; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP80=31605; // òýéêïðîôèò
extern int       SL81=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì
extern int       Prof81 = 614;//ïðè äîñòèæåíèè ïðîôèòà â 614 ïï.
extern int       SL82=122;     //ñòîï â áåçóáûòîê + 122 ïï. ñòàâèì
extern int       Prof82 = 1720;//ïðè äîñòèæåíèè ïðîôèòà â 1720 ïï.
extern int       SL83=1205;     //ñòîï â áåçóáûòîê + 1205 ïï. ñòàâèì
extern int       Prof83 = 4644;//ïðè äîñòèæåíèè ïðîôèòà â 4644 ïï.
extern int       SL84=6110;     //ñòîï â áåçóáûòîê + 6110 ïï. ñòàâèì
extern int       Prof84 = 10998;//ïðè äîñòèæåíèè ïðîôèòà â 10998 ïï.
extern int       SL85=9165;     //ñòîï â áåçóáûòîê + 9165 ïï. ñòàâèì
extern int       Prof85 = 12220;//ïðè äîñòèæåíèè ïðîôèòà â 12220 ïï.
extern int       SL86=9776;     //ñòîï â áåçóáûòîê + 9776 ïï. ñòàâèì
extern int       Prof86 = 17108;//ïðè äîñòèæåíèè ïðîôèòà â 17108 ïï.
extern int       SL87=12220;     //ñòîï â áåçóáûòîê + 12220 ïï. ñòàâèì
extern int       Prof87 = 20774;//ïðè äîñòèæåíèè ïðîôèòà â 20774 ïï.
extern int       SL88=17108;     //ñòîï â áåçóáûòîê + 17108 ïï. ñòàâèì
extern int       Prof88 = 24440;//ïðè äîñòèæåíèè ïðîôèòà â 24440ïï.
extern int       SL89=25662;     //ñòîï â áåçóáûòîê + 26662 ïï. ñòàâèì
extern int       Prof89 = 30550;//ïðè äîñòèæåíèè ïðîôèòà â 30550 ïï.
extern string    A8_1="========================================";
extern string    A9="Êîììåíòàðèé 9-ãî òèïà è óñòàíîâêè â ïóíêòàõ";  
extern string    Comment9="9";
extern int       SL90=1071; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP90=46500; // òýéêïðîôèò
extern int       SL91=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì
extern int       Prof91 = 968;//ïðè äîñòèæåíèè ïðîôèòà â 968 ïï.
extern int       SL92=270;     //ñòîï â áåçóáûòîê + 270 ïï. ñòàâèì
extern int       Prof92 = 2196;//ïðè äîñòèæåíèè ïðîôèòà â 2196 ïï.
extern int       SL93=540;     //ñòîï â áåçóáûòîê + 540 ïï. ñòàâèì
extern int       Prof93 = 4482;//ïðè äîñòèæåíèè ïðîôèòà â 4482 ïï.
extern int       SL94=4482;     //ñòîï â áåçóáûòîê + 4482 ïï.. ñòàâèì
extern int       Prof94 = 8764;//ïðè äîñòèæåíèè ïðîôèòà â 8764 ïï.
extern int       SL95=7303;     //ñòîï â áåçóáûòîê + 7303 ïï. ñòàâèì
extern int       Prof95 = 9738;//ïðè äîñòèæåíèè ïðîôèòà â 9738 ïï.
extern int       SL96=7790;     //ñòîï â áåçóáûòîê + 7790 ïï. ñòàâèì
extern int       Prof96 = 13633;//ïðè äîñòèæåíèè ïðîôèòà â 13633 ïï.
extern int       SL97=9738;     //ñòîï â áåçóáûòîê + 9738 ïï. ñòàâèì
extern int       Prof97 = 16555;//ïðè äîñòèæåíèè ïðîôèòà â 16555 ïï.
extern int       SL98=13633;     //ñòîï â áåçóáûòîê + 13633 ïï. ñòàâèì
extern int       Prof98 = 19476;//ïðè äîñòèæåíèè ïðîôèòà â 19476 ïï.
extern int       SL99=20450;     //ñòîï â áåçóáûòîê + 20450 ïï. ñòàâèì
extern int       Prof99 = 24345;//ïðè äîñòèæåíèè ïðîôèòà â 24345 ïï.
extern string    A9_1="========================================";
extern string    A10="Êîììåíòàðèé 10-ãî òèïà è óñòàíîâêè â ïóíêòàõ"; 
extern string    Comment10="10";
extern int       SL100=1748; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP100=65400; // òýéêïðîôèò
extern int       SL101=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì
extern int       Prof101 = 1569;//ïðè äîñòèæåíèè ïðîôèòà â 1569 ïï.
extern int       SL102=61;     //ñòîï â áåçóáûòîê + 61 ïï. ñòàâèì
extern int       Prof102 = 5530;//ïðè äîñòèæåíèè ïðîôèòà â 5530 ïï.
extern int       SL103=1160;     //ñòîï â áåçóáûòîê + 1160 ïï. ñòàâèì
extern int       Prof103 = 8858;//ïðè äîñòèæåíèè ïðîôèòà â 8858 ïï.
extern int       SL104=11650;     //ñòîï â áåçóáûòîê + 11650 ïï. ñòàâèì
extern int       Prof104 = 20979;//ïðè äîñòèæåíèè ïðîôèòà â 20979 ïï.
extern int       SL105=17480;     //ñòîï â áåçóáûòîê + 17480 ïï. ñòàâèì
extern int       Prof105 = 23310;//ïðè äîñòèæåíèè ïðîôèòà â 23310 ïï.
extern int       SL106=18648;     //ñòîï â áåçóáûòîê + 18648 ïï. ñòàâèì
extern int       Prof106 = 32634;//ïðè äîñòèæåíèè ïðîôèòà â 32634 ïï.
extern int       SL107=23310;     //ñòîï â áåçóáûòîê + 23310 ïï. ñòàâèì
extern int       Prof107 = 39627;//ïðè äîñòèæåíèè ïðîôèòà â 39627 ïï.
extern int       SL108=32634;     //ñòîï â áåçóáûòîê + 32634 ïï. ñòàâèì
extern int       Prof108 = 46620;//ïðè äîñòèæåíèè ïðîôèòà â 46620 ïï.
extern int       SL109=58275;     //ñòîï â áåçóáûòîê + 58275 ïï. ñòàâèì
extern int       Prof109 = 62360;//ïðè äîñòèæåíèè ïðîôèòà â 62360 ïï.
extern string    A10_1="========================================";
extern string    A11="Êîììåíòàðèé 11-ãî òèïà è óñòàíîâêè â ïóíêòàõ";  
extern string    Comment11="11";
extern int       SL200=1850; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP200=98960; // òýéêïðîôèò
extern int       SL201=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì 
extern int       Prof201 = 1724;//ïðè äîñòèæåíèè ïðîôèòà â 1724 ïï.
extern int       SL202=27;     //ñòîï â áåçóáûòîê + 27 ïï. ñòàâèì
extern int       Prof202 = 5596;//ïðè äîñòèæåíèè ïðîôèòà â 5596 ïï.
extern int       SL203=968;     //ñòîï â áåçóáûòîê + 968 ïï. ñòàâèì
extern int       Prof203 = 9686;//ïðè äîñòèæåíèè ïðîôèòà â 9686 ïï.
extern int       SL204=1760;     //ñòîï â áåçóáûòîê + 1760 ïï. ñòàâèì
extern int       Prof204 = 12624;//ïðè äîñòèæåíèè ïðîôèòà â 12624 ïï.
extern int       SL205=960;     //ñòîï â áåçóáûòîê + 960 ïï. ñòàâèì, îáìàííûé ñòîï íàçàä
extern int       Prof205 = 12746;//ïðè äîñòèæåíèè ïðîôèòà â 12746 ïï.
extern int       SL206=18960;     //ñòîï â áåçóáûòîê + 18960 ïï. ñòàâèì
extern int       Prof206 = 23902;//ïðè äîñòèæåíèè ïðîôèòà â 23902 ïï.
extern int       SL207=5460;     //ñòîï â áåçóáûòîê + 5460 ïï. ñòàâèì, îáìàííûé âîçâðàò
extern int       Prof207 = 24102;//ïðè äîñòèæåíèè ïðîôèòà â 24102 ïï.
extern int       SL208=24100;     //ñòîï â áåçóáûòîê + 24100 ïï. ñòàâèì
extern int       Prof208 = 36906;//ïðè äîñòèæåíèè ïðîôèòà â 36906 ïï.
extern int       SL209=55600;     //ñòîï â áåçóáûòîê + 55600 ïï. ñòàâèì
extern int       Prof209 = 62160;//ïðè äîñòèæåíèè ïðîôèòà â 62160 ïï.
extern string    A11_1="========================================";
extern string    A12="Êîììåíòàðèé 12-ãî òèïà è óñòàíîâêè â ïóíêòàõ";  
extern string    Comment12="12";
extern int       SL300=186; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP300=86220; // òýéêïðîôèò
extern int       SL301=6;     //ñòîï â áåçóáûòîê + 6 ïï. ñòàâèì
extern int       Prof301 = 177;//ïðè äîñòèæåíèè ïðîôèòà â 177 ïï.
extern int       SL302=105;     //ñòîï â áåçóáûòîê + 105 ïï. ñòàâèì
extern int       Prof302 = 333;//ïðè äîñòèæåíèè ïðîôèòà â 333 ïï.
extern int       SL303=207;     //ñòîï â áåçóáûòîê + 207 ïï. ñòàâèì
extern int       Prof303 = 546;//ïðè äîñòèæåíèè ïðîôèòà â 546 ïï.
extern int       SL304=303;     //ñòîï â áåçóáûòîê + 303 ïï. ñòàâèì
extern int       Prof304 = 636;//ïðè äîñòèæåíèè ïðîôèòà â 636 ïï.
extern int       SL305=429;     //ñòîï â áåçóáûòîê + 429 ïï. ñòàâèì
extern int       Prof305 = 906;//ïðè äîñòèæåíèè ïðîôèòà â 906 ïï.
extern int       SL306=540;     //ñòîï â áåçóáûòîê + 540 ïï. ñòàâèì
extern int       Prof306 = 1269;//ïðè äîñòèæåíèè ïðîôèòà â 1269 ïï.
extern int       SL307=639;     //ñòîï â áåçóáûòîê + 639 ïï. ñòàâèì
extern int       Prof307 = 1590;//ïðè äîñòèæåíèè ïðîôèòà â 1590 ïï.
extern int       SL308=969;     //ñòîï â áåçóáûòîê + 969 ïï. ñòàâèì
extern int       Prof308 = 1806;//ïðè äîñòèæåíèè ïðîôèòà â 1806 ïï.
extern int       SL309=1350;     //ñòîï â áåçóáûòîê + 1350 ïï. ñòàâèì
extern int       Prof309 = 2250;//ïðè äîñòèæåíèè ïðîôèòà â 2250 ïï.
extern string    A12_1="========================================";
extern string    A13="Êîììåíòàðèé 13-ãî òèïà è óñòàíîâêè â ïóíêòàõ";  
extern string    Comment13="13";
extern int       SL400=186; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP400=5199; // òýéêïðîôèò
extern int       SL401=6;     //ñòîï â áåçóáûòîê + 6 ïï. ñòàâèì
extern int       Prof401 = 180;//ïðè äîñòèæåíèè ïðîôèòà â 180 ïï.
extern int       SL402=54;     //ñòîï â áåçóáûòîê + 54 ïï. ñòàâèì
extern int       Prof402 = 249;//ïðè äîñòèæåíèè ïðîôèòà â 249 ïï.
extern int       SL403=108;     //ñòîï â áåçóáûòîê + 108 ïï. ñòàâèì
extern int       Prof403 = 303;//ïðè äîñòèæåíèè ïðîôèòà â 303 ïï.
extern int       SL404=243;     //ñòîï â áåçóáûòîê + 243 ïï. ñòàâèì
extern int       Prof404 = 429;//ïðè äîñòèæåíèè ïðîôèòà â 429 ïï.
extern int       SL405=366;     //ñòîï â áåçóáûòîê + 366 ïï. ñòàâèì
extern int       Prof405 = 699;//ïðè äîñòèæåíèè ïðîôèòà â 699 ïï.
extern int       SL406=603;     //ñòîï â áåçóáûòîê + 603 ïï. ñòàâèì
extern int       Prof406 = 969;//ïðè äîñòèæåíèè ïðîôèòà â 969 ïï.
extern int       SL407=960;     //ñòîï â áåçóáûòîê + 960 ïï. ñòàâèì
extern int       Prof407 = 1860;//ïðè äîñòèæåíèè ïðîôèòà â 1860 ïï.
extern int       SL408=1260;     //ñòîï â áåçóáûòîê + 1260 ïï. ñòàâèì
extern int       Prof408 = 2222;//ïðè äîñòèæåíèè ïðîôèòà â 2222 ïï.
extern int       SL409=2490;     //ñòîï â áåçóáûòîê + 2490 ïï. ñòàâèì
extern int       Prof409 = 3399;//ïðè äîñòèæåíèè ïðîôèòà â 3399 ïï.
extern string    A13_1="========================================";
extern string    A14="Êîììåíòàðèé 14-ãî òèïà è óñòàíîâêè â ïóíêòàõ"; 
extern string    Comment14="14";
extern int       SL500=186; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP500=3850; // òýéêïðîôèò
extern int       SL501=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì
extern int       Prof501 = 77;//ïðè äîñòèæåíèè ïðîôèòà â 77 ïï.
extern int       SL502=6;     //ñòîï â áåçóáûòîê + 6 ïï. ñòàâèì
extern int       Prof502 = 168;//ïðè äîñòèæåíèè ïðîôèòà â 168 ïï.
extern int       SL503=158;     //ñòîï â áåçóáûòîê + 158 ïï. ñòàâèì
extern int       Prof503 = 338;//ïðè äîñòèæåíèè ïðîôèòà â 338 ïï.
extern int       SL504=331;     //ñòîï â áåçóáûòîê + 331 ïï. ñòàâèì
extern int       Prof504 = 507;//ïðè äîñòèæåíèè ïðîôèòà â 507 ïï.
extern int       SL505=502;     //ñòîï â áåçóáûòîê + 502 ïï. ñòàâèì
extern int       Prof505 = 834;//ïðè äîñòèæåíèè ïðîôèòà â 834 ïï.
extern int       SL506=915;     //ñòîï â áåçóáûòîê + 915 ïï. ñòàâèì
extern int       Prof506 = 1336;//ïðè äîñòèæåíèè ïðîôèòà â 1336 ïï.
extern int       SL507=1236;     //ñòîï â áåçóáûòîê + 1260 ïï. ñòàâèì
extern int       Prof507 = 2250;//ïðè äîñòèæåíèè ïðîôèòà â 2250 ïï.
extern int       SL508=2251;     //ñòîï â áåçóáûòîê + 2251 ïï. ñòàâèì
extern int       Prof508 = 3486;//ïðè äîñòèæåíèè ïðîôèòà â 3486 ïï.
extern int       SL509=3485;     //ñòîï â áåçóáûòîê + 3485 ïï. ñòàâèì
extern int       Prof509 = 3570;//ïðè äîñòèæåíèè ïðîôèòà â 3570 ïï.
extern string    A14_1="========================================";
extern string    A15="Êîììåíòàðèé 15-ãî òèïà è óñòàíîâêè â ïóíêòàõ"; 
extern string    Comment15="15";
extern int       SL600=186; // ïåðâîíà÷àëüíûé ñòîï 
extern int       TP600=3942; // òýéêïðîôèò
extern int       SL601=2;     //ñòîï â áåçóáûòîê + 2 ïï. ñòàâèì
extern int       Prof601 = 180;//ïðè äîñòèæåíèè ïðîôèòà â 180 ïï.
extern int       SL602=45;     //ñòîï â áåçóáûòîê + 45 ïï. ñòàâèì
extern int       Prof602 = 294;//ïðè äîñòèæåíèè ïðîôèòà â 294 ïï.
extern int       SL603=62;     //ñòîï â áåçóáûòîê + 62 ïï. ñòàâèì
extern int       Prof603 = 303;//ïðè äîñòèæåíèè ïðîôèòà â 303 ïï.
extern int       SL604=186;     //ñòîï â áåçóáûòîê + 186 ïï. ñòàâèì
extern int       Prof604 = 492;//ïðè äîñòèæåíèè ïðîôèòà â 492 ïï.
extern int       SL605=270;     //ñòîï â áåçóáûòîê + 270 ïï. ñòàâèì
extern int       Prof605 = 591;//ïðè äîñòèæåíèè ïðîôèòà â 591 ïï.
extern int       SL606=422;     //ñòîï â áåçóáûòîê + 422 ïï. ñòàâèì
extern int       Prof606 = 969;//ïðè äîñòèæåíèè ïðîôèòà â 969 ïï.
extern int       SL607=630;     //ñòîï â áåçóáûòîê + 630 ïï. ñòàâèì
extern int       Prof607 = 1241;//ïðè äîñòèæåíèè ïðîôèòà â 1241 ïï.
extern int       SL608=990;     //ñòîï â áåçóáûòîê + 990 ïï. ñòàâèì
extern int       Prof608 = 1457;//ïðè äîñòèæåíèè ïðîôèòà â 1457 ïï.
extern int       SL609=1969;     //ñòîï â áåçóáûòîê + 1969 ïï. ñòàâèì
extern int       Prof609 = 2247;//ïðè äîñòèæåíèè ïðîôèòà â 2247 ïï.
extern string    A15_1="========================================";
extern string    A16="Ñëåäèòü çà ïîçèöèÿìè íà âñåõ ñèìâîëàõ";
extern bool      AllSymbolsDetect = True;  // false òîëüêî íà ïðèêðåïëåííîì ãðàôèêå
extern string    A16_1="========================================";
extern string    A17 = "Ïàðàìåòðû ñåðâèñíûõ ñîîáùåíèé: óãîë (0-3), öâåò, ðàçìåð øðèôòà";
extern int       CommentCorner = 3;
extern color     CommentColor = Yellow;
extern int       CommentFontSize = 12;
extern string    A18 = "----------------------------------";

int Trail[15, 10, 2]; // ïåðâîå èçìåðåíèå - íîìåð êîììåíòà,
                        // âòîðîå èçìåðåíèå - íîìåð ñòóïåíè (ïåðâîíà÷àëüíûå ñòîï è ïðîôèò 
                                                               //òîæå ñ÷èòàþòñÿ ñòóïåíüþ)
                        // òðåòüå èçìåðåíèå: â ýëåìåíòå 0 - ñòîï, â ýëåìåíòå 1 - ïðîôèò
int ErrorPos[10000]; // Ìàññèâ íîìåðîâ òèêåòîâ, äëÿ êîòîðûõ çàôèêñèðîâàíà îøèáêà
int CountPos; // Êîëè÷åñòâî çàïîëíåííûõ ýëåìåíòîâ ìàññèâà ErrorPos
string Comm[15];

bool Activate;
double Tick, Spread, StopLevel;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   Activate = False;
   CountPos = 0;
   ArrayInitialize(ErrorPos, 0);
// - 1 - == Ñáîð èíôîðìàöèè îá óñëîâèÿõ òîðãîâëè ========================================   
   Tick = MarketInfo(Symbol(), MODE_TICKSIZE);                         // ìèíèìàëüíûé òèê    
   Spread = ND(MarketInfo(Symbol(), MODE_SPREAD)*Point);                 // òåêóùèé ñïðýä
   StopLevel = ND(MarketInfo(Symbol(), MODE_STOPLEVEL)*Point);  // òåêóùèé óðîâåíü ñòîïîâ 
// - 1 - == Îêîí÷àíèå áëîêà =============================================================

   if (!TrailToArray(Comment1, SL10, TP10, SL11, Prof11, SL12, Prof12, SL13, Prof13, 
                     SL14, Prof14, SL15, Prof15, SL16, Prof16, SL17, Prof17, SL18, Prof18, SL19, Prof19, 0) || 
       !TrailToArray(Comment2, SL20, TP20, SL21, Prof21, SL22, Prof22, SL23, Prof23, 
                     SL24, Prof24, SL25, Prof25, SL26, Prof26, SL27, Prof27, SL28, Prof28, SL29, Prof29, 1) || 
       !TrailToArray(Comment3, SL30, TP30, SL31, Prof31, SL32, Prof32, SL33, Prof33, 
                     SL34, Prof34, SL35, Prof35, SL36, Prof36, SL37, Prof37, SL38, Prof38, SL39, Prof39, 2) || 
       !TrailToArray(Comment4, SL40, TP40, SL41, Prof41, SL42, Prof42, SL43, Prof43, 
                     SL44, Prof44, SL45, Prof45, SL46, Prof46, SL47, Prof47, SL48, Prof48, SL49, Prof49, 3) ||
       !TrailToArray(Comment5, SL50, TP50, SL51, Prof51, SL52, Prof52, SL53, Prof53, 
                     SL54, Prof54, SL55, Prof55, SL56, Prof56, SL57, Prof57, SL58, Prof58, SL59, Prof59, 4) ||
       !TrailToArray(Comment6, SL60, TP60, SL61, Prof61, SL62, Prof62, SL63, Prof63, 
                     SL64, Prof64, SL65, Prof65, SL66, Prof66, SL67, Prof67, SL68, Prof68, SL69, Prof69, 5) ||
       !TrailToArray(Comment7, SL70, TP70, SL71, Prof71, SL72, Prof72, SL73, Prof73, 
                     SL74, Prof74, SL75, Prof75, SL76, Prof76, SL77, Prof77, SL76, Prof76, SL77, Prof77, 6) ||
       !TrailToArray(Comment8, SL80, TP80, SL81, Prof81, SL82, Prof82, SL83, Prof83, 
                     SL84, Prof84, SL85, Prof85, SL86, Prof86, SL87, Prof87, SL88, Prof88, SL89, Prof89, 7) ||
       !TrailToArray(Comment9, SL90, TP90, SL91, Prof91, SL92, Prof92, SL93, Prof93, 
                     SL94, Prof94, SL95, Prof95, SL96, Prof96, SL97, Prof97, SL98, Prof98, SL99, Prof99, 8) ||
       !TrailToArray(Comment10, SL100, TP100, SL101, Prof101, SL102, Prof102, SL103,
                     Prof103, SL104, Prof104, SL105, Prof105, SL106, Prof106, SL107,
                     Prof107,SL108, Prof108, SL109,
                     Prof109, 9) ||
       !TrailToArray(Comment11, SL200, TP200, SL201, Prof201, SL202, Prof202, SL203,
                     Prof203, SL204, Prof204, SL205, Prof205, SL206, Prof206, SL207,
                     Prof207, SL208, Prof208, SL209,
                     Prof209, 10) ||
       !TrailToArray(Comment12, SL300, TP300, SL301, Prof301, SL302, Prof302, SL303,
                     Prof303, SL304, Prof304, SL305, Prof305, SL306, Prof306, SL307,
                     Prof307, SL308, Prof308, SL309,
                     Prof309, 11) ||
       !TrailToArray(Comment13, SL400, TP400, SL401, Prof401, SL402, Prof402, SL403,
                     Prof403, SL404, Prof404, SL405, Prof405, SL406, Prof406, SL407,
                     Prof407, SL408, Prof408, SL409,
                     Prof409, 12) ||
       !TrailToArray(Comment14, SL500, TP500, SL501, Prof501, SL502, Prof502, SL503,
                     Prof503, SL504, Prof504, SL505, Prof505, SL506, Prof506, SL507,
                     Prof507, SL508, Prof508, SL509,
                     Prof509, 13) ||
       !TrailToArray(Comment15, SL600, TP600, SL601, Prof601, SL602, Prof602, SL603,
                     Prof603, SL604, Prof604, SL605, Prof605, SL606, Prof606, SL607,
                     Prof607, SL608, Prof608, SL609,
                     Prof609, 14))
      return(0); 
   
   
   Activate = True;  
//----
   return(0);
  }

//+-------------------------------------------------------------------------------------+
//| expert deinitialization function                                                    |
//+-------------------------------------------------------------------------------------+
int deinit()
  {
//----
   if (ObjectFind("NewComment2") == 0)
     ObjectDelete("NewComment2");   
//----
   return(0);
  }

//+-------------------------------------------------------------------------------------+
//| Ïðîâåðêà ïðàâèëüíîñòè çíà÷åíèé è çàíåñåíèå â ìàññèâ                                 |
//+-------------------------------------------------------------------------------------+
bool TrailToArray(string A, int SL0, int TP0, int SL1, int TP1, int SL2, int TP2, 
                  int SL3, int TP3, int SL4, int TP4, int SL5, int TP5, int SL6, int TP6,
                  int SL7, int TP7, int SL8, int TP8,int SL9, int TP9, int Num)
{
 if (SL0 <= 0)
   {
    Comment("Çíà÷åíèå SL", Num+1, "0 äîëæíî áûòü áîëüøå íóëÿ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå SL", Num+1, "0 äîëæíî áûòü áîëüøå íóëÿ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (SL1 < 0)
   {
    Comment("Çíà÷åíèå SL", Num+1, "1 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå SL", Num+1, "1 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (SL2 < 0)
   {
    Comment("Çíà÷åíèå SL", Num+1, "2 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå SL", Num+1, "2 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (SL3 < 0)
   {
    Comment("Çíà÷åíèå SL", Num+1, "3 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå SL", Num+1, "3 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (SL4 < 0)
   {
    Comment("Çíà÷åíèå SL", Num+1, "4 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå SL", Num+1, "4 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (SL5 < 0)
   {
    Comment("Çíà÷åíèå SL", Num+1, "5 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå SL", Num+1, "5 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (SL6 < 0)
   {
    Comment("Çíà÷åíèå SL", Num+1, "6 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå SL", Num+1, "6 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (SL7 < 0)
   {
    Comment("Çíà÷åíèå SL", Num+1, "7 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå SL", Num+1, "7 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
  if (SL8 < 0)
   {
    Comment("Çíà÷åíèå SL", Num+1, "8 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå SL", Num+1, "8 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (SL9 < 0)
   {
    Comment("Çíà÷åíèå SL", Num+1, "9 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå SL", Num+1, "9 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (TP0 < 0)
   {
    Comment("Çíà÷åíèå TP", Num+1, "0 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå TP", Num+1, "0 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (TP1 < 0)
   {
    Comment("Çíà÷åíèå TP", Num+1, "1 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå TP", Num+1, "1 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (TP2 < 0)
   {
    Comment("Çíà÷åíèå TP", Num+1, "2 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå TP", Num+1, "2 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (TP3 < 0)
   {
    Comment("Çíà÷åíèå TP", Num+1, "3 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå TP", Num+1, "3 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (TP4 < 0)
   {
    Comment("Çíà÷åíèå TP", Num+1, "4 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå TP", Num+1, "4 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (TP5 < 0)
   {
    Comment("Çíà÷åíèå TP", Num+1, "5 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå TP", Num+1, "5 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (TP6 < 0)
   {
    Comment("Çíà÷åíèå TP", Num+1, "6 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå TP", Num+1, "6 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (TP7 < 0)
   {
    Comment("Çíà÷åíèå TP", Num+1, "7 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå TP", Num+1, "7 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }   
 if (TP8 < 0)
   {
    Comment("Çíà÷åíèå TP", Num+1, "8 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå TP", Num+1, "8 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 if (TP9 < 0)
   {
    Comment("Çíà÷åíèå TP", Num+1, "9 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    Print("Çíà÷åíèå TP", Num+1, "9 äîëæíî áûòü áîëüøå èëè ðàâíî íóëþ. Ñîâåòíèê îòêëþ÷åí!");
    return(False);
   }  
 Trail[Num, 0, 0] = SL0;
 Trail[Num, 1, 0] = SL1;
 Trail[Num, 2, 0] = SL2;
 Trail[Num, 3, 0] = SL3;
 Trail[Num, 4, 0] = SL4;
 Trail[Num, 5, 0] = SL5;
 Trail[Num, 6, 0] = SL6;
 Trail[Num, 7, 0] = SL7;
 Trail[Num, 8, 0] = SL8;
 Trail[Num, 9, 0] = SL9;
 Trail[Num, 0, 1] = TP0;
 Trail[Num, 1, 1] = TP1;
 Trail[Num, 2, 1] = TP2;
 Trail[Num, 3, 1] = TP3;
 Trail[Num, 4, 1] = TP4;
 Trail[Num, 5, 1] = TP5;
 Trail[Num, 6, 1] = TP6;
 Trail[Num, 7, 1] = TP7;
 Trail[Num, 8, 1] = TP8;
 Trail[Num, 9, 1] = TP9;
 Comm[Num] = A;   
 return(True);  
}

//+-------------------------------------------------------------------------------------+
//| Ïðèâåäåíèå çíà÷åíèé ê òî÷íîñòè îäíîãî ïóíêòà                                        |
//+-------------------------------------------------------------------------------------+
double ND(double A)
{
 return(NormalizeDouble(A, Digits));
}  

//+-------------------------------------------------------------------------------------+
//| Ïðèâåäåíèå çíà÷åíèé ê òî÷íîñòè îäíîãî ïóíêòà äëÿ íóæíîé âàëþòíîé ïàðû               |
//+-------------------------------------------------------------------------------------+
double NDS(double A, string Sym)
{
 return(NormalizeDouble(A, MarketInfo(Sym, MODE_DIGITS)));
}  

//+-------------------------------------------------------------------------------------+
//| Âûâîä êîììåíòàðèÿ â îäíîì èç óãëîâ                                                  |
//+-------------------------------------------------------------------------------------+
void NewComment(string S)
{
 if (ObjectFind("NewComment2") == -1)
   {
    // Ñîçäàíèå îáúåêòà
    if (!ObjectCreate("NewComment2", OBJ_LABEL, 0, 0, 0))
      return;
    ObjectSet("NewComment2", OBJPROP_CORNER, CommentCorner); 
    ObjectSet("NewComment2", OBJPROP_XDISTANCE, 1);
    ObjectSet("NewComment2", OBJPROP_YDISTANCE, 1);
   }
 ObjectSetText("NewComment2", S, CommentFontSize, "Trebushe MS", CommentColor);
}  

//+-------------------------------------------------------------------------------------+
//| Îæèäàíèå òîðãîâîãî ïîòîêà. Åñëè ïîòîê ñâîáîäåí, òî ðåçóëüòàò True, èíà÷å - False    |
//+-------------------------------------------------------------------------------------+  
bool WaitForTradeContext()
{
 int P = 0;
 // öèêë "ïîêà"
 while(IsTradeContextBusy() && P < 5)
   {
    P++;
    Sleep(1000);
   }
 // -------------  
 if(P == 5)
   return(False);
 return(True);    
}

//+-------------------------------------------------------------------------------------+
//| Ïðèâåäåíèå çíà÷åíèé ê òî÷íîñòè îäíîãî òèêà                                          |
//+-------------------------------------------------------------------------------------+
double NP(double A)
{
 return(MathRound(A/Tick)*Tick);
}  

//+-------------------------------------------------------------------------------------+
//| Òðåéëèíã-ñòîï                                                                       |
//+-------------------------------------------------------------------------------------+
void TrailingStop()
{
// - 1 - ==================== Íàõîæäåíèå ñâîèõ ñäåëîê ===================================
   for (int i = 0; i < OrdersTotal(); i++)
     if (OrderSelect(i, SELECT_BY_POS) && OrderType() < 2)
       if (OrderSymbol() == Symbol() || AllSymbolsDetect)
         for (int j = 0; j < 15; j++)
           if (OrderComment() == Comm[j])
// - 1 - ==================== Îêîí÷àíèå áëîêà ===========================================

// - 2 - ==================== ×òåíèå îñíîâíûõ õàðàêòåðèñòèê =============================
             {
              // - 2.1 - ========== Ïðîâåðêà îøèáî÷íîé ïîçèöèè ==========================
              bool Res = False;
              for (int k = 0; k < CountPos; k++)
                if (ErrorPos[k] == OrderTicket())
                  {
                   Res = True;
                   break;
                  } 
              if (Res) break;    
              // - 2.1 - ========== Îêîí÷àíèå áëîêà =====================================
              double OpPrice = NDS(OrderOpenPrice(), OrderSymbol());
              double SL = NDS(OrderStopLoss(), OrderSymbol());
              double TP = NDS(OrderTakeProfit(), OrderSymbol());
              double NBid = NDS(MarketInfo(OrderSymbol(), MODE_BID), OrderSymbol());
              double NAsk = NDS(MarketInfo(OrderSymbol(), MODE_ASK), OrderSymbol());
              Tick = MarketInfo(OrderSymbol(), MODE_TICKSIZE);         // ìèíèìàëüíûé òèê    
              Spread = NDS(MarketInfo(OrderSymbol(), MODE_SPREAD)*
                           MarketInfo(OrderSymbol(), MODE_POINT), OrderSymbol());
              StopLevel = NDS(MarketInfo(OrderSymbol(), MODE_STOPLEVEL)*
                              MarketInfo(OrderSymbol(), MODE_POINT), 
                              OrderSymbol());                   // òåêóùèé óðîâåíü ñòîïîâ
// - 2 - ==================== Îêîí÷àíèå áëîêà ===========================================
              
              if (OrderType() == OP_BUY)
                { 
// - 3 - ==================== Óñòàíîâêà ïðîôèòà è ñòîïà äëèííîé ñäåëêè ==================
                 if (TP == 0 || SL == 0)
                   {
                    double sl = NP(OpPrice-Tick*Trail[j, 0, 0]);
                    if (sl <= 0)
                      {
                       Alert("Ñòîï äëÿ ïîçèöèè #", OrderTicket(), 
                             " âûõîäèò ìåíüøå íóëÿ!");
                       ErrorPos[CountPos] = OrderTicket();
                       CountPos++;
                       break;
                      }
                    double tp = NP(OpPrice+Tick*Trail[j, 0, 1]);
                    if (NBid - sl > StopLevel && tp - NBid > StopLevel)
                      if (WaitForTradeContext())
                        if (!OrderModify(OrderTicket(), 0, sl, tp, 0))
                          Print("Îøèáêà ïðè óñòàíîâêå ñòîïà è ïðîôèòà îðäåðó BUY #", 
                                OrderTicket(), ", îøèáêà ¹", GetLastError(), ", SL = ", 
                                sl, ", TP = ", tp, ", Bid = ", NBid);
                    break;                                          // ïðåðûâàíèå öèêëà j
                   }
// - 3 - ==================== Îêîí÷àíèå áëîêà ===========================================

// - 4 - ========= Ïðîâåðêà íåîáõîäèìîñòè ïåðåíîñà ñòîïà ïî òðàëó äëèííîé ñäåëêè ========
                 for (k = 7; k > 0; k--)
                   if (NDS(NBid - OpPrice - Tick*Trail[j, k, 1], OrderSymbol()) >= 0 &&
                       OpPrice + Tick*Trail[j, k, 0] - SL >= Tick &&
                       NDS(NBid - OpPrice - Tick*Trail[j, k, 0] - StopLevel, 
                           OrderSymbol()) > 0)
                     {      
                      if (WaitForTradeContext())
                        if (!OrderModify(OrderTicket(), 0, 
                                         NP(OpPrice + Tick*Trail[j, k, 0]),
                                         OrderTakeProfit(), 0))
                          Print("Íå óäàëîñü èçìåíèòü îðäåð BUY #", OrderTicket(), 
                                ". Îøèáêà ¹", GetLastError(), ", Ñòàðûé: ", SL, 
                                ", Íîâûé: ", NP(OpPrice + Tick*Trail[j, k, 0]));
                      break;                                        // ïðåðûâàíèå öèêëà k
                     }           
                 break;                                             // ïðåðûâàíèå öèêëà j
// - 4 - ==================== Îêîí÷àíèå áëîêà ===========================================
                }

              if (OrderType() == OP_SELL)
                {
// - 5 - ==================== Óñòàíîâêà ïðîôèòà è ñòîïà êîðîòêîé ñäåëêè =================
                 if (TP == 0 || SL == 0)
                   {
                    sl = NP(OpPrice+Tick*Trail[j, 0, 0]+Spread);
                    tp = NP(OpPrice-Tick*Trail[j, 0, 1]+Spread);
                    if (tp <= 0)
                      {
                       Alert("Ïðîôèò äëÿ ïîçèöèè #", OrderTicket(), 
                             " âûõîäèò ìåíüøå íóëÿ!");
                       ErrorPos[CountPos] = OrderTicket();
                       CountPos++;
                       break;
                      }
                    if (sl - NAsk > StopLevel && NAsk - tp > StopLevel)
                      if (WaitForTradeContext())
                        if (!OrderModify(OrderTicket(), 0, sl, tp, 0))
                          Print("Îøèáêà ïðè óñòàíîâêå ñòîïà è ïðîôèòà îðäåðó SELL #", 
                                OrderTicket(), ", îøèáêà ¹", GetLastError(), ", SL = ", 
                                sl, ", TP = ", tp, ", Ask = ", NAsk);
                    break;                                          // ïðåðûâàíèå öèêëà j
                   }
// - 5 - ==================== Îêîí÷àíèå áëîêà ===========================================
                
// - 6 - ======== Ïðîâåðêà íåîáõîäèìîñòè ïåðåíîñà ñòîïà ïî òðàëó êîðîòêîé ñäåëêè ========
                 for (k = 7; k > 0; k--)
                   if (NDS(OpPrice - Tick*Trail[j, k, 1] - NAsk + Spread,
                           OrderSymbol()) >= 0 &&
                       SL - (OpPrice - Tick*Trail[j, k, 0] + Spread) >= Tick &&
                       NDS(OpPrice - Tick*Trail[j, k, 0] + Spread - NAsk - StopLevel, 
                           OrderSymbol()) > 0)
                     {   
                      if (WaitForTradeContext())   
                        if (!OrderModify(OrderTicket(), 0, 
                                         NP(OpPrice-Tick*Trail[j,k,0]+Spread),
                                         OrderTakeProfit(),0))
                          Print("Íå óäàëîñü èçìåíèòü îðäåð SELL #", OrderTicket(), 
                                ". Îøèáêà ¹", GetLastError(), ", Ñòàðûé: ", SL, 
                                ", Íîâûé: ", NP(OpPrice-Tick*Trail[j,k,0]+Spread));
                      break;                                        // ïðåðûâàíèå öèêëà k
                     }           
                 break;                                             // ïðåðûâàíèå öèêëà j
// - 6 - ==================== Îêîí÷àíèå áëîêà ===========================================
               }             
             }
       
  return; 
 }     


//+-------------------------------------------------------------------------------------+
//| expert start function                                                               |
//+-------------------------------------------------------------------------------------+
int start()
  {
//----
   if (!Activate) return(0);

   TrailingStop();
   
   // Âû÷èñëåíèå ðàçìåðà çàëîãà ïî îòíîøåíèþ ê äåïîçèòó
   double Margin = AccountMargin()/AccountBalance()*100;
   NewComment("Â çàëîãå "+DoubleToStr(Margin, 2)+"% îò äåïîçèòà");
//----
   return(0);
  }
//+------------------------------------------------------------------+

Comments