The provided MQL4 script appears to be part of an Expert Advisor (EA) for the MetaTrader 4 platform, designed to analyze trading signals from the RSI indicator. Here's a breakdown of its components and functionality:
Key Components
-
Variables:
i
,iRSI
: Loop counters.RSI
,Signal
,RSILast
,SignalLast
,sig1
,sig2
,sig3
,sig4
: Variables used to store RSI values and trading signals.
-
Input Parameters:
RSIPeriod
: The period for the RSI indicator.AlertSound
,Commentary
: Flags to enable alerts and commentary.
-
Functions:
-
OnInit()
: Initializes arrays and settings when the EA is loaded. -
OnTick()
: Main function executed every tick, which:- Updates current RSI values for each symbol.
- Computes signals based on RSI levels (overbought/oversold).
- Plots these signals using colored shapes (triangles) on a chart.
- Optionally creates labels with signal information.
- Sends alerts and updates commentary if enabled.
-
SetLabel()
: A custom function to create and configure text labels on the chart. -
arrow(int sig)
: Returns an arrow character based on the trading signal (buy/sell/no action). -
Colorarrow(int sig)
: Returns a color corresponding to the trading signal.
-
Functionality
-
The EA uses RSI levels to generate buy or sell signals:
- Buy Signal (
sig1
): Triggered when RSI falls below 30. - Sell Signal (
sig2
): Triggered when RSI rises above 70. - Neutral Signals (
sig3
,sig4
): Indicate the absence of a buy or sell signal.
- Buy Signal (
-
Plotting: It uses colored triangles on the chart to visually represent these signals:
- Upward triangle for buy signals.
- Downward triangle for sell signals.
-
Alerts and Commentary:
- Plays a sound when a new signal is generated (if
AlertSound
is enabled). - Updates commentary with signal information (if
Commentary
is enabled).
- Plays a sound when a new signal is generated (if
Improvements
-
Error Handling: Add checks to handle potential errors, such as failed access to chart data or invalid parameters.
-
Optimization: Consider optimizing the loop and conditions to reduce redundancy and improve performance.
-
Configuration: Allow dynamic configuration of RSI levels for buy/sell signals instead of hardcoding values (30 and 70).
-
Code Readability: Improve variable naming conventions and add more comments to enhance readability and maintainability.
-
Testing: Ensure thorough testing on different symbols and timeframes to validate functionality across various market conditions.
This script is a basic implementation for generating trading signals based on RSI indicators, suitable for customization and further enhancement as per specific trading strategies.
//+------------------------------------------------------------------+
//| Copyright 2009, Expforex |
//| http://www.expforex.at.ua |
//+------------------------------------------------------------------+
#property copyright "2008-2010, Expforex"
#property link "http://www.expforex.at.ua"
#property version "4.0"
#property description "VirtualTradePad for MT5 Àâòîðñêàÿ ðàçðàáîòêà. Ñèñòåìà äëÿ ðàáîòû íà ðûíêå Forex îäíèì íàæàòèåì êíîïêè. Äëÿ êîíêóðñà \"Ëó÷øàÿ ïàíåëü óïðàâëåíèÿ\" "
/*
Èñòîðèÿ âåðñèé:
V1.0:
-Â Ýêñïåðòå ðåàëçèîâàíû âñå ñêðèïòû ïî çàêðûòèþ îðäåðîâ.
-Â äàííîé âåðñèè ïðèñóòñòâóþò òàêèå êíîïêè:
--CloseALL
--CloseALLSTOP
--CloseBUY
--CloseBUYSTOP
--CloseSELL
--CloseSELLSTOP
--CloseLOSS
--ClosePROFIT
-Ïðè íàæàòèè êíîïêè, âñå ïîçèöèè/îðäåðà çàêðîþòñÿ/óäàëÿòñÿ, ïî âñåì èíñòðóìåíòàì.
V2.0:
-Äîáàâèë êíîïêè îòêðûòèÿ îðäåðîâ BUY SELL
-Äîáàâèë ïàðàìåòðû Òåéêïðîôèò, Ñòîïëîñ, Ëîò
-Åñëè StopLosss èëè TakeProfits - óêàçàíû ìèíèìàëüíû è íåðàâíû 0, òî ñèñòåìà àâòîìàòè÷åñêè óñòàíàâëèâàåò çíà÷åíèÿ íà ìèíèìàëüíîå ðàññòîÿíèå.
-Äîáàâèë SymbolClose - áóëåíò íà çàêðûòèå âñåõ ñèìâîëîâ, ëèáî æå ïî òåêóùåìó.
-Äîáàâèë âîçìîæíîñòü ñòàâèòü îòëîæåííûå îðäåðà BUYSTOP b SELLSTOP
-Ïàðàìåòð OrderPricePip - ðàññòîÿíèå äëÿ îòëîæêè
-Åñëè OrderPricePips íåðàâíî 0 è ìåíüøå ìèíèìàëüíîãî ñòîïà, ïàðàìåòðó ïðèñâàèâàåòñÿ ìèíèìàëüíûé ñòîï
V2.2:
-Èñïðàâëåíû íàçâàíèå êíîïîê íà óäàëåíèå îòëîæåííûõ îðäåðîâ
-Äîáàâëåíî ïîëå èçìåíåíèÿ Lots â ðåàëüíîì ðåæèìå.
--Åñëè Lots - ïûòàåòåñü âûñòàâèòü ìåíüøå ìèíèìàëüíîãî - çíà÷åíèå ñòàíîâèòñÿ ìèíèìàëüíî âîçìîæíûì íà ýòîì ñåðåâåðå
-Äîáàâëåíî ïîëå èçìåíåíèÿ TakeProfit â ðåàëüíîì ðåæèìå.
--Åñëè TakeProfit - ïûòàåòåñü âûñòàâèòü ìåíüøå ìèíèìàëüíîãî - çíà÷åíèå ñòàíîâèòñÿ ìèíèìàëüíî âîçìîæíûì íà ýòîì ñåðåâåðå
--Åñëè TakeProfit áîëüøå 0 , òî îêíî çíà÷åíèÿ òåéêïðîôèòà ñòàíîâèòñÿ çåëåíûì - ò.å. âêëþ÷åííûì.
-Äîáàâëåíî ïîëå èçìåíåíèÿ StopLoss â ðåàëüíîì ðåæèìå.
--Åñëè StopLoss - ïûòàåòåñü âûñòàâèòü ìåíüøå ìèíèìàëüíîãî - çíà÷åíèå ñòàíîâèòñÿ ìèíèìàëüíî âîçìîæíûì íà ýòîì ñåðåâåðå
--Åñëè StopLoss áîëüøå 0 , òî îêíî çíà÷åíèÿ òåéêïðîôèòà ñòàíîâèòñÿ çåëåíûì - ò.å. âêëþ÷åííûì.
-Äîáàâëåíî ïîëå èçìåíåíèÿ OrderPricePip â ðåàëüíîì ðåæèìå.
--Åñëè OrderPricePip - ïûòàåòåñü âûñòàâèòü ìåíüøå ìèíèìàëüíîãî - çíà÷åíèå ñòàíîâèòñÿ ìèíèìàëüíî âîçìîæíûì íà ýòîì ñåðåâåðå
--Åñëè OrderPricePip áîëüøå 0 , òî îêíî çíà÷åíèÿ òåéêïðîôèòà ñòàíîâèòñÿ çåëåíûì - ò.å. âêëþ÷åííûì.
V2.3
-Äîáàâèë âîçìîæíîñòü ïðÿòàòü ïàíåëü ñ ïîìîùüþ êíîïêè : Âêëþ÷èòü/Âûêëþ÷èòü VisualTrade
-Ïåðåñòðîèë êíîïêè îòêðûòèÿ îðäåðîâ ïîä ïàðàìåòðû îòêðûòèÿ.
v2.6
-Ðàçðàáîòêà è äîðàáîòêà äÿë êîíêóðñà íà mql5.com
-Ïåðåäâèíóë êíîïêè
-Èñïðàâèë îøèáêó îòêðûòèÿ ïîçèöèé
-Èñïðàâèë îøèáêó çàêðûòèÿ ïîçèöèé åñëèáîëüøå 1 à òàêæå óäàëåíèè â ïîðÿäêå óáûâàíèÿ
-Äîáàâèë òðàëëèíãñòîï
v 3.4
-Ïîëíîñòüþ ïîìåíÿë äèçàéí
-Äîáàâèë ãðàôèê ïîêàçàíèÿ öåí Áèä è Àñê
-Äîáàâèë âûáîð âàëþòíîé ïàðû äëÿ ðàáîòû ñ íåé
-Óáðàë ðàáîòó ñ îòëîæåííèêàìè ïîêà-÷òî
-Äîáàâèë Èíôîðìàöèþ ïî îòêðûòîé ïîçèöè äëÿ âûáðàííîé ïàðû
-Äîáàâèë ïðîâåðêó ñîåäèíåíèÿ ñ ñåðâåðîì
-Äîáàâèë ïîñëåäíåå âðåìÿ ñåðâåðà
-Äîáàâèë ïàíåëü óïðàâëåíèÿ òðàëëèíãà
-Ïðè ñòàðòå - ïîçèöèè ñðàçó ïðîâåðÿþòñÿ è ñîîòâåòñòâóþùèå êíîïêè ñîîòâåòñâåííî ðàñêðàøèâàþòñÿ
-Èñïðàâèë âñå ïðåäñòâàëåíèÿ äàííûõ, ÷òîáû íå âûñâå÷èâàëî Warningov
-Ïðèâåë â áîëåå ïîíÿòíûé âèä âåñü êîä, ñäåëàë îïèñàíèå âñåõ ôóíêöèé âíóòðè êîäà
-Äîáàâèë 4 âêëàäêè:
Pos(Ðàáîòà ñ ïîçèöèÿûìè)
: Áëîê ëîòû
: Áëîê Ñòîïëîññ
: Áëîê Òåéêïðîôèò
: Áëîê Òðàëëèíãñòîï
: Áëîê îòêðûòèÿ BUY SELL
: Áëîê çàêðûòèÿ
: Áëîê Reverse - ïåðåâåðíóòü ïîçèöèþ ïî ïàðå
Ord(Ðàáîòà ñ îòëîæåííèêàìè)
: Çíà÷åíèå Ïóíêòîâ îò òåêóöùåé öåíû
: 4 êíîïêè íà 4 îòëîæåííèêà: BUYSTOP SELLSTOP BUYLIMIT SELLLIMIT
: Ñòîïëîññ Òåéêïðîôèò
: Ëîò
: Êíîïêà Óäàëèòü âñå îòëîæåííèêè
INFO(Ïîêàçûâàåò èíôîðìàöèþ î âûáðàííîé âàëþòíîé ïàðå + ïîêàçûâàåò ñîñòîÿíèå áàðîâ ïî âñåì ñòàíäàðòíûì ÒÔ â âèäå ñòðåëîê)
: Ñïðåä
: Ñòîï
: Ïèïñ
: ËÎÒ Ìèí
: ËÎÒ Ìàõ
: ËÎÒ øàã
: Ñâîï äëèííûé è êîðîòêèé
: Ïàíåëü äâèæåíèÿ âàëþòû íà ðàçíûõ ÒÔ
OTHER(Äîáàâèë ñþäà ïîëåçíûå ôóíêöèè)
: Çàêðûòèå âñåõ ïîçèöèé ïðè äîñòèæåíèè îïðåäåëåííîãî ïàðàìòåðà: Ïðîöåíò îò áàëàíñà / Ïóíêòû / Âàëþòà äåïîçèòà
: Ãðèäåð äëÿ ñóùåñòâóþùåé ïîçèöèè, âûñòàâëÿåò ñåòêó îòëîæåííûõ îðäåðîâ îò ñóùåñòâóþùåé ïîçèöèè.
+Ïðè íàæàòèè íà ÒÔ â âêëàäêå INFO - Ñáîêó îòêðûâàåòñÿ ãðàôèê âûáðàííîé ïàðû è ÒÔ, ïðè ïîâòîðíîì íàæàòèè ãðàôèê çàêðûâàåòñÿ
Ind
: Âêëàäêà ïîêàçûâàþùàÿ ñèãíàëû ñ 11 èíäèêàòîðîâ, îïèñàííûõ â ñòàòüå 20 òîðãîâûõ òàêòèê http://www.mql5.com/ru/articles/130
*/
//+------------------------------------------------------------------+
//| Âíåøíèå ïåðåìåííûå |
//+------------------------------------------------------------------+
input string Symbol1="EURUSD";
input string Symbol2="EURGBP";
input string Symbol3="EURCHF";
input string Symbol4="USDCHF";
input string Symbol5="USDJPY";
input string Symbol6="GBPUSD";
//+------------------------------------------------------------------+
//| Ãëîáàëüíûå ïåðåìåííûå |
//+------------------------------------------------------------------+
bool SymbolClose=true;
double lot=0.1;
int TakeProfits=0;
int StopLosss=0;
int OrderPricePips=20;
int Profit;
int Loss;
int TypeofClose;
int OrderPricePip=0;
int GRIDNUMBER=1;
int TakeProfit=0;
int StopLoss=0;
double lotss=0;
bool SymbolCloseS;
int OrderLevelStop;
int TFToInd;
ushort TRAILING_STOP = 0; // Óðîâåíü òðåéëèíã ñòîïà
ushort TRAILING_STEP = 1; // Øàã ïåðåìåùåíèÿ òðåéëèíã ñòîïà
ushort SLIPPAGE=2; // Ïðîñêàëüçûâàíèå
int window=0;
//+------------------------------------------------------------------+
//| Îáúÿâèì ïåðåìåííûå äëÿ õðàíåíèÿ íàñòðîåê èíäèêàòîðîâ |
//+------------------------------------------------------------------+
//--- input parameters Moving Average
int periodma1=8;
int periodma2=16;
ENUM_MA_METHOD MAmethod=MODE_SMA;
ENUM_APPLIED_PRICE MAprice=PRICE_CLOSE;
//--- input parameters MACD
int FastMACD=12;
int SlowMACD=26;
int MACDSMA=9;
ENUM_APPLIED_PRICE MACDprice=PRICE_CLOSE;
//--- input parameters Price Channel
int PCPeriod=22;
//--- input parameters Adaptive Channel ADX
int ADXPeriod=14;
//--- input parameters Stochastic Oscillator
int SOPeriodK=5;
int SOPeriodD=3;
int SOslowing=3;
ENUM_MA_METHOD SOmethod=MODE_SMA;
ENUM_STO_PRICE SOpricefield=STO_LOWHIGH;
//--- input parameters RSI
int RSIPeriod=14;
ENUM_APPLIED_PRICE RSIprice=PRICE_CLOSE;
//--- input parameters CCI
int CCIPeriod=14;
ENUM_APPLIED_PRICE CCIprice=PRICE_TYPICAL;
//--- input parameters WPR
int WPRPeriod=14;
//--- input parameters Bollinger Bands
int BBPeriod=20;
double BBdeviation=2.0;
ENUM_APPLIED_PRICE BBprice=PRICE_CLOSE;
//--- input parameters Standard Deviation Channel
int SDCPeriod=14;
double SDCdeviation=2.0;
ENUM_APPLIED_PRICE SDCprice=PRICE_CLOSE;
ENUM_MA_METHOD SDCmethod=MODE_SMA;
//--- input parameters Price Channel 2
int PC2Period=22;
//--- input parameters Envelopes
int ENVPeriod=14;
double ENVdeviation=0.1;
ENUM_APPLIED_PRICE ENVprice=PRICE_CLOSE;
ENUM_MA_METHOD ENVmethod=MODE_SMA;
//--- input parameters Donchian Channels
int DCPeriod=24;
int DCExtremes=3;
int DCMargins=-2;
//--- input parameters Silver-channels
int SCPeriod=26;
double SCSilvCh=38.2;
double SCSkyCh=23.6;
double SCFutCh=61.8;
//--- input parameters NRTR
int NRTRPeriod = 40;
double NRTRK = 2.0;
//--- input parameters Alligator
int ALjawperiod=13;
int ALteethperiod=8;
int ALlipsperiod=5;
ENUM_MA_METHOD ALmethod=MODE_SMMA;
ENUM_APPLIED_PRICE ALprice=PRICE_MEDIAN;
//--- input parameters AMA
int AMAperiod=9;
int AMAfastperiod=2;
int AMAslowperiod=30;
ENUM_APPLIED_PRICE AMAprice=PRICE_CLOSE;
//--- input parameters Ichimoku Kinko Hyo
int IKHtenkansen=9;
int IKHkijunsen=26;
int IKHsenkouspanb=52;
string buttonID="Çàêðûòü âñå ïîçèöèè";
string buttonID8="Îòêðûòü ïîçèöèþ Buy ";
string buttonID9="Îòêðûòü ïîçèöèþ Sell";
int trailing_level; // Óðîâåíü òðåéëèíã ñòîïà
int trailing_step; // øàã òðåéëèíã ñòîïà
int slippage; // ïðîñêàëüçûâàíèå
MqlTick tick; // òåêóùàÿ êîòèðîâêà
MqlTick first_tick; // ïåðâàÿ êîòèðîâêà
MqlTradeRequest request; // ïàðàìåòðû òîðãîâîãî çàïðîñà
MqlTradeResult result; // ðåçóëüòàò òîðãîâîãî çàïðîñà
double order_open_price; // öåíà îòêðûòèÿ îðäåðà
double spread; // âåëè÷èíà ñïðýäà
ulong stop_level; // ìèíèìàëüíûé îòñòóï îò öåíû äëÿ óñòàíîâêè ñòîï ëîññà / òåéê ïðîôèòà
ulong order_type; // òèï îðäåðà
ulong order_ticket; // òèêåò îðäåðà
string symToWork;
//+------------------------------------------------------------------+
//| Expert ÂÓDEinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//Ïðè äåèíèöèàëèçàöèè óäàëÿåì âñå îáüåêòû
ObjectsDeleteAll(window,0);
return;
}
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//Ïðèñâàèâàåì ïî óìîë÷àíèþ - ãðàôèê íà êîòîðîì ñòîèò Ïàíåëü
symToWork=Symbol();
//Ïðèñâàèâàåì çíà÷åíèÿ äëÿ Òðàëëèíãñòîïà
trailing_step = TRAILING_STEP;
slippage = SLIPPAGE;
if((_Digits==3) || (_Digits==5))
{
trailing_step = trailing_step * 10;
slippage = slippage * 10;
}
//+------------------------------------------------------------------+
//Ðèñóåì êíîïêè
SetParametrsandCreate();
//Èíôîðìàöèÿ ïî òåêóùåìó èíñòðóìåíòó
PosInfo(0);
//Èíôîìðàöèÿ ïî ñåðâåðó
SeverInfo(0);
//Ïðîâåðêà Âñåõ ñèìâîëîâ íà íàëè÷èå ïîçèöèé
SymINFOStart(Symbol1);
SymINFOStart(Symbol2);
SymINFOStart(Symbol3);
SymINFOStart(Symbol4);
SymINFOStart(Symbol5);
SymINFOStart(Symbol6);
return(0);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//Ïðèñâàèâàåì çíà÷åíèÿ Òåêóùåé öåíû ïðè îáíîâëåíèè òèêà
if(ObjectGetInteger(window,"Pos",OBJPROP_STATE)==true)SyMbolPriceRe(symToWork);
//Ïðèñâàèâàåì çíà÷åíèÿ Èíôîðìàöèè î ñèìâîëå
if(ObjectGetInteger(window,"INFO",OBJPROP_STATE)==true)InfoAboutSymbol();
//Åñëè íàæàòà êíîïêà Òðàëëèíãñòîï - òðàëëèì ïîçèöèþ
if(ObjectGetInteger(window,"TrallingStop",OBJPROP_STATE)==true)WorkWithPositions(Symbol1);
if(ObjectGetInteger(window,"TrallingStop",OBJPROP_STATE)==true)WorkWithPositions(Symbol2);
if(ObjectGetInteger(window,"TrallingStop",OBJPROP_STATE)==true)WorkWithPositions(Symbol3);
if(ObjectGetInteger(window,"TrallingStop",OBJPROP_STATE)==true)WorkWithPositions(Symbol4);
if(ObjectGetInteger(window,"TrallingStop",OBJPROP_STATE)==true)WorkWithPositions(Symbol5);
if(ObjectGetInteger(window,"TrallingStop",OBJPROP_STATE)==true)WorkWithPositions(Symbol6);
if(ObjectGetInteger(window,"USEProfitCLOSE",OBJPROP_STATE)==true) startCloseBlock3();
SymINFOStart(Symbol1);
SymINFOStart(Symbol2);
SymINFOStart(Symbol3);
SymINFOStart(Symbol4);
SymINFOStart(Symbol5);
SymINFOStart(Symbol6);
// Îáíîâëÿåì ïîêàçàíèÿ Èíäèêàòîðîâ
if(ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true) VKL_IND(10,symToWork);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert CHART function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
// Âûáîð Âàëþòíîé ïàðû
//+------------------------------------------------------------------+
//| Ðàáîòà ñ âàëþòíîé ïàðîé |
//+------------------------------------------------------------------+
if(id==CHARTEVENT_OBJECT_CLICK && sparam==Symbol1)
{
symToWork=Symbol1; ObjectSetInteger(window,Symbol1,OBJPROP_STATE,true);
ObjectSetInteger(window,Symbol2,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol3,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol4,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol5,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol6,OBJPROP_STATE,false);
SyMbolPriceRe(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
if(ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true) VKL_IND(10,symToWork);
ChartClose_A(symToWork);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam==Symbol2)
{
symToWork=Symbol2; ObjectSetInteger(window,Symbol2,OBJPROP_STATE,true);
ObjectSetInteger(window,Symbol1,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol3,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol4,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol5,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol6,OBJPROP_STATE,false);
SyMbolPriceRe(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
ChartClose_A(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
if(ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true) VKL_IND(10,symToWork);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam==Symbol3)
{
symToWork=Symbol3; ObjectSetInteger(window,Symbol3,OBJPROP_STATE,true);
ObjectSetInteger(window,Symbol2,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol1,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol4,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol5,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol6,OBJPROP_STATE,false);
SyMbolPriceRe(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
ChartClose_A(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
if(ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true) VKL_IND(10,symToWork);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam==Symbol4)
{
symToWork=Symbol4; ObjectSetInteger(window,Symbol4,OBJPROP_STATE,true);
ObjectSetInteger(window,Symbol2,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol3,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol1,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol5,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol6,OBJPROP_STATE,false);
SyMbolPriceRe(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
ChartClose_A(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
if(ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true) VKL_IND(10,symToWork);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam==Symbol5)
{
symToWork=Symbol5; ObjectSetInteger(window,Symbol5,OBJPROP_STATE,true);
ObjectSetInteger(window,Symbol2,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol3,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol4,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol1,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol6,OBJPROP_STATE,false);
SyMbolPriceRe(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
ChartClose_A(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
if(ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true) VKL_IND(10,symToWork);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam==Symbol6)
{
symToWork=Symbol6; ObjectSetInteger(window,Symbol6,OBJPROP_STATE,true);
ObjectSetInteger(window,Symbol2,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol3,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol4,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol5,OBJPROP_STATE,false);
ObjectSetInteger(window,Symbol1,OBJPROP_STATE,false);
SyMbolPriceRe(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
ChartClose_A(symToWork);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
if(ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true) VKL_IND(10,symToWork);
ChartRedraw();
}
//+------------------------------------------------------------------+
//| Ðàáîòà ñ Âêëàäêàìè |
//+------------------------------------------------------------------+
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Pos")
{
ObjectSetInteger(window,"Pos",OBJPROP_STATE,true);
ObjectSetInteger(window,"Ord",OBJPROP_STATE,false);
ObjectSetInteger(window,"INFO",OBJPROP_STATE,false);
ObjectSetInteger(window,"Func",OBJPROP_STATE,false);
ObjectSetInteger(window,"Ind",OBJPROP_STATE,false);
VkladkaOrders(-500,-500);
BG(0); // ÁåêÃÁåêÃðàóíä
Header();// Øàïêà - âêëàäêè
body(0); // Òåëî êíîïîê
BODYLEVEL(-20,60);// Òåëî óðîâíåé
InfoAboutSymbol(-2000);
SymINFOStart(Symbol1);
SymINFOStart(Symbol2);
SymINFOStart(Symbol3);
SymINFOStart(Symbol4);
SymINFOStart(Symbol5);
SymINFOStart(Symbol6);
VKL_OTHERS(-500);
VKL_IND(-5000);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Ord")
{
ObjectSetInteger(window,"Ord",OBJPROP_STATE,true);
ObjectSetInteger(window,"Pos",OBJPROP_STATE,false);
ObjectSetInteger(window,"INFO",OBJPROP_STATE,false);
ObjectSetInteger(window,"Func",OBJPROP_STATE,false);
ObjectSetInteger(window,"Ind",OBJPROP_STATE,false);
priceCreate("BID",-500+97,65,"",15,Black);
priceCreate("BID2",-500+137,60,"",20,Red);
priceCreate("Ask",-500+177,65,"",15,Black);
priceCreate("Ask2",-500+217,60,"",20,Green);
priceCreate("BID3",-500+137,60,"",20,Red);
priceCreate("Ask3",-500+217,60,"",20,Green);
BG(-2000);
body(-2000); // Òåëî êíîïîê
BODYLEVEL(-2000,60);// Òåëî óðîâíåé
InfoAboutSymbol(-2000);
Header();// Øàïêà - âêëàäêè
VkladkaOrders(-20,80);
PosInfo();
SeverInfo(-1000);
SymINFOStart(Symbol1);
SymINFOStart(Symbol2);
SymINFOStart(Symbol3);
SymINFOStart(Symbol4);
SymINFOStart(Symbol5);
SymINFOStart(Symbol6);
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true)
{
if(OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
}
VKL_OTHERS(-500);
VKL_IND(-5000);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="INFO")
{
ObjectSetInteger(window,"INFO",OBJPROP_STATE,true);
ObjectSetInteger(window,"Pos",OBJPROP_STATE,false);
ObjectSetInteger(window,"Ord",OBJPROP_STATE,false);
ObjectSetInteger(window,"Func",OBJPROP_STATE,false);
VkladkaOrders(-500,-500);
ObjectSetInteger(window,"Ind",OBJPROP_STATE,false);
priceCreate("BID",-500+97,65,"",15,Black);
priceCreate("BID2",-500+137,60,"",20,Red);
priceCreate("Ask",-500+177,65,"",15,Black);
priceCreate("Ask2",-500+217,60,"",20,Green);
priceCreate("BID3",-500+137,60,"",20,Red);
priceCreate("Ask3",-500+217,60,"",20,Green);
PosInfo(-1000);
SeverInfo(-1000);
BG(-2000);
body(-2000); // Òåëî êíîïîê
BODYLEVEL(-2000,60);// Òåëî óðîâíåé
InfoAboutSymbol();
Header();// Øàïêà - âêëàäêè
SymINFOStart(Symbol1);
SymINFOStart(Symbol2);
SymINFOStart(Symbol3);
SymINFOStart(Symbol4);
SymINFOStart(Symbol5);
SymINFOStart(Symbol6);
VKL_OTHERS(-500);
VKL_IND(-5000);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Func")
{
ObjectSetInteger(window,"Func",OBJPROP_STATE,true);
ObjectSetInteger(window,"Pos",OBJPROP_STATE,false);
ObjectSetInteger(window,"Ord",OBJPROP_STATE,false);
ObjectSetInteger(window,"INFO",OBJPROP_STATE,false);
ObjectSetInteger(window,"Ind",OBJPROP_STATE,false);
VkladkaOrders(-500,-500);
priceCreate("BID",-500+97,65,"",15,Black);
priceCreate("BID2",-500+137,60,"",20,Red);
priceCreate("Ask",-500+177,65,"",15,Black);
priceCreate("Ask2",-500+217,60,"",20,Green);
priceCreate("BID3",-500+137,60,"",20,Red);
priceCreate("Ask3",-500+217,60,"",20,Green);
PosInfo(-1000);
SeverInfo(-1000);
BG(-2000);
body(-2000); // Òåëî êíîïîê
BODYLEVEL(-2000,60);// Òåëî óðîâíåé
InfoAboutSymbol(-2000);
Header(-2000);// Øàïêà - âêëàäêè
VKL_OTHERS(0);
VKL_IND(-5000);
ChartRedraw();
}
//Ind
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Ind")
{
ObjectSetInteger(window,"Ind",OBJPROP_STATE,true);
ObjectSetInteger(window,"Func",OBJPROP_STATE,false);
ObjectSetInteger(window,"Pos",OBJPROP_STATE,false);
ObjectSetInteger(window,"Ord",OBJPROP_STATE,false);
ObjectSetInteger(window,"INFO",OBJPROP_STATE,false);
VkladkaOrders(-500,-500);
priceCreate("BID",-500+97,65,"",15,Black);
priceCreate("BID2",-500+137,60,"",20,Red);
priceCreate("Ask",-500+177,65,"",15,Black);
priceCreate("Ask2",-500+217,60,"",20,Green);
priceCreate("BID3",-500+137,60,"",20,Red);
priceCreate("Ask3",-500+217,60,"",20,Green);
PosInfo(-1000);
SeverInfo(-1000);
BG(-2000);
body(-2000); // Òåëî êíîïîê
BODYLEVEL(-2000,60);// Òåëî óðîâíåé
InfoAboutSymbol(-2000);
Header();// Øàïêà - âêëàäêè
VKL_IND(10,symToWork);
VKL_OTHERS(-2000);
ChartRedraw();
}
//+------------------------------------------------------------------+
//| Ðàáîòà ñ Çàêðûòèåì ñäåëêè |
//+------------------------------------------------------------------+
//--- ïðîâåðèì ñîáûòèå íà íàæàòèå êíîïêè ìûøêè è èñïîëíÿåì ôóíêöèþ, ñîîòâòåòñâóþùóþ äàííîé êíîïêå, Ïîñëå èñïîëíåíèÿ - îòæèìàåì êíîïêó
if(id==CHARTEVENT_OBJECT_CLICK && sparam==buttonID)
{
CloseAll(symToWork); ObjectSetInteger(window,buttonID,OBJPROP_STATE,false);
ChartRedraw();
}
//+------------------------------------------------------------------+
//| Ðàáîòà ñ îòêðûòèåì BUY |
//+------------------------------------------------------------------+
//--- ïðîâåðèì ñîáûòèå íà íàæàòèå êíîïêè ìûøêè è èñïîëíÿåì ôóíêöèþ, ñîîòâòåòñâóþùóþ äàííîé êíîïêå, Ïîñëå èñïîëíåíèÿ - îòæèìàåì êíîïêó
if(id==CHARTEVENT_OBJECT_CLICK && sparam==buttonID8)
{
OpenBUY(symToWork); ObjectSetInteger(window,buttonID8,OBJPROP_STATE,false);
ChartRedraw();
}
//+------------------------------------------------------------------+
//| Ðàáîòà ñ îòêðûòèåì SELL |
//+------------------------------------------------------------------+
//--- ïðîâåðèì ñîáûòèå íà íàæàòèå êíîïêè ìûøêè è èñïîëíÿåì ôóíêöèþ, ñîîòâòåòñâóþùóþ äàííîé êíîïêå, Ïîñëå èñïîëíåíèÿ - îòæèìàåì êíîïêó
if(id==CHARTEVENT_OBJECT_CLICK && sparam==buttonID9)
{
OpenSELL(symToWork); ObjectSetInteger(window,buttonID9,OBJPROP_STATE,false);
ChartRedraw();
}
//REVERSE
//+------------------------------------------------------------------+
//| Ðàáîòà ñ îòêðûòèåì SELL |
//+------------------------------------------------------------------+
//--- ïðîâåðèì ñîáûòèå íà íàæàòèå êíîïêè ìûøêè è èñïîëíÿåì ôóíêöèþ, ñîîòâòåòñâóþùóþ äàííîé êíîïêå, Ïîñëå èñïîëíåíèÿ - îòæèìàåì êíîïêó
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="REVERSE")
{
REVERSE(symToWork); ObjectSetInteger(window,"REVERSE",OBJPROP_STATE,false);
ChartRedraw();
}
//+------------------------------------------------------------------+
//| Ðàáîòà ñ Ìèíèìèçàöèåé |
//+------------------------------------------------------------------+
//--- Åñëè íàæàòà êíîïêà Ìèíèìèçàöèè - Ñâàðà÷èâàåì Ïàíåëü - Åñëè Íàæàòà â ñâåðíóòîì âèäå - ðàçâàðà÷èâàåì ïàíåëü
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Minimize2")
{
if(ObjectGetInteger(window,"Minimize2",OBJPROP_STATE)==true)
{
HideSetParametrsand();ButtonCreate("Minimize2",Black,LightCyan,2,200,13,70,">",10);
}
else {SetParametrsandCreate();SyMbolPriceRe(symToWork);}
ChartRedraw();
}
//Minimize2
//+------------------------------------------------------------------+
//| Ìîäèôèêàöèÿ |
//+------------------------------------------------------------------+
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Modify")
{
Modify(symToWork,StopLoss,TakeProfit); ObjectSetInteger(window,"Modify",OBJPROP_STATE,false);
ChartRedraw();
}
//+------------------------------------------------------------------+
//| Ðàáîòà ñ ëîòàìè |
//+------------------------------------------------------------------+
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Ëîò ââåðõ")
{
lotss=lotss+0.01;
ObjectSetString(window,"Lots",OBJPROP_TEXT,DoubleToString(lotss,2));
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Ëîò âíèç")
{
lotss=lotss-0.01;
if(lotss<SymbolInfoDouble(symToWork,SYMBOL_VOLUME_MIN))lotss=SymbolInfoDouble(symToWork,SYMBOL_VOLUME_MIN);
ObjectSetString(window,"Lots",OBJPROP_TEXT,DoubleToString(lotss,2));
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_ENDEDIT && sparam=="Lots")
{
lotss=StringToDouble(ObjectGetString(window,"Lots",OBJPROP_TEXT));
ChartRedraw();
}
//+------------------------------------------------------------------+
//| Ðàáîòà ñ Tralling |
//+------------------------------------------------------------------+
//--- ïðîâåðèì ñîáûòèå íà íàæàòèå êíîïêè ìûøêè è èñïîëíÿåì ôóíêöèþ, ñîîòâòåòñâóþùóþ äàííîé êíîïêå
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="TrallingStop")
{
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Tralling ââåðõ")
{
trailing_level=trailing_level+1;
if(trailing_level>0 && trailing_level<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))trailing_level=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"Tralling",OBJPROP_TEXT,DoubleToString(trailing_level,0));
ObjectSetInteger(window,"Tralling ââåðõ",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Tralling âíèç")
{
trailing_level=trailing_level-1;
if(trailing_level<0)trailing_level=0;
if(trailing_level>0 && trailing_level<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))trailing_level=0;
ObjectSetString(window,"Tralling",OBJPROP_TEXT,DoubleToString(trailing_level,0));
ObjectSetInteger(window,"Tralling âíèç",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_ENDEDIT && sparam=="Tralling")
{
trailing_level=(int)StringToInteger(ObjectGetString(window,"Tralling",OBJPROP_TEXT));
ChartRedraw();
}
if(trailing_level!=0)ObjectSetInteger(window,"Tralling",OBJPROP_COLOR,Green);else ObjectSetInteger(window,"Tralling",OBJPROP_COLOR,Red);
//+------------------------------------------------------------------+
//| Ðàáîòà ñ TakeProfit |
//+------------------------------------------------------------------+
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="TakeProfit ââåðõ")
{
TakeProfit=TakeProfit+1;
if(TakeProfit>0 && TakeProfit<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))TakeProfit=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"TakeProfit",OBJPROP_TEXT,DoubleToString(TakeProfit,0));
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="TakeProfit âíèç")
{
TakeProfit=TakeProfit-1;
if(TakeProfit<0)TakeProfit=0;
if(TakeProfit>0 && TakeProfit<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))TakeProfit=0;
ObjectSetString(window,"TakeProfit",OBJPROP_TEXT,DoubleToString(TakeProfit,0));
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_ENDEDIT && sparam=="TakeProfit")
{
TakeProfit=(int)StringToInteger(ObjectGetString(window,"TakeProfit",OBJPROP_TEXT));
ChartRedraw();
}
if(TakeProfit!=0)ObjectSetInteger(window,"TakeProfit",OBJPROP_COLOR,Green);else ObjectSetInteger(window,"TakeProfit",OBJPROP_COLOR,Red);
//+------------------------------------------------------------------+
//| Ðàáîòà ñ StopLoss |
//+------------------------------------------------------------------+
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="StopLoss ââåðõ")
{
StopLoss=StopLoss+1;
if(StopLoss>0 && StopLoss<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))StopLoss=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"StopLoss",OBJPROP_TEXT,DoubleToString(StopLoss,0));
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="StopLoss âíèç")
{
StopLoss=StopLoss-1;
if(StopLoss<0)StopLoss=0;
if(StopLoss>0 && StopLoss<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))StopLoss=0;
ObjectSetString(window,"StopLoss",OBJPROP_TEXT,DoubleToString(StopLoss,0));
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_ENDEDIT && sparam=="StopLoss")
{
StopLoss=(int)StringToInteger(ObjectGetString(window,"StopLoss",OBJPROP_TEXT));
ChartRedraw();
}
if(StopLoss!=0)ObjectSetInteger(window,"StopLoss",OBJPROP_COLOR,Green);else ObjectSetInteger(window,"StopLoss",OBJPROP_COLOR,Red);
//+------------------------------------------------------------------+
//| Ðàáîòà ñ OrderLevelStop |
//+------------------------------------------------------------------+
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="OrderLevelStop ââåðõ")
{
OrderLevelStop=OrderLevelStop+1;
if(OrderLevelStop>0 && OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
ObjectSetInteger(window,"OrderLevelStop ââåðõ",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="OrderLevelStop âíèç")
{
OrderLevelStop=OrderLevelStop-1;
if(OrderLevelStop<0)OrderLevelStop=0;
if(OrderLevelStop>0 && OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderLevelStop=0;
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
ObjectSetInteger(window,"OrderLevelStop âíèç",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_ENDEDIT && sparam=="OrderLevelStop")
{
OrderLevelStop=(int)StringToInteger(ObjectGetString(window,"OrderLevelStop",OBJPROP_TEXT));
ChartRedraw();
}
if(OrderLevelStop!=0)ObjectSetInteger(window,"OrderLevelStop",OBJPROP_COLOR,Green);else ObjectSetInteger(window,"OrderLevelStop",OBJPROP_COLOR,Red);
//+------------------------------------------------------------------+
//| Ðàáîòà ñ Îòëîæåííèêàìè |
//+------------------------------------------------------------------+
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="BUYSTOP")
{
OpenBUYSTOP(); ObjectSetInteger(window,"BUYSTOP",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="SELLSTOP")
{
OpenSELLSTOP(); ObjectSetInteger(window,"SELLSTOP",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="BUYLIMIT")
{
OpenBUYLIMIT(); ObjectSetInteger(window,"BUYLIMIT",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="SELLLIMIT")
{
OpenSELLLIMIT(); ObjectSetInteger(window,"SELLLIMIT",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="DELETE")
{
DeleteAllStops(); ObjectSetInteger(window,"DELETE",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_ENDEDIT && sparam=="OrderLevelStopGRID")
{
GRIDNUMBER=(int)StringToInteger(ObjectGetString(window,"OrderLevelStopGRID",OBJPROP_TEXT));
ChartRedraw();
}
// ObjectSetString(window,"OrderLevelStopGRID",OBJPROP_TEXT,DoubleToString(GRIDNUMBER,0));
//+------------------------------------------------------------------+
//| Ðàáîòà ñ ProfitClose |
//+------------------------------------------------------------------+
/*int startCloseBlock3()
TypeofClose
ButtonCreate("TypeClose_DOLLAR",Black,Khaki,x+150,100,100,20,"$",10);
ButtonCreate("TypeClose_PERCENT",Black,Khaki,x+150,120,100,20,"%",10);
ObjectCreate(window,"USELossCLOSE_EDIT",OBJ_EDIT,0,100,100);
ButtonCreate("USEProfitCLOSE",Black,Khaki,x+150,10,100,20,"USEProfitCLOSE",10);
ObjectCreate(window,"USEProfitCLOSE_EDIT",OBJ_EDIT,0,100,100);
int Profit;
int Loss;
*/
if(id==CHARTEVENT_OBJECT_ENDEDIT && sparam=="USELossCLOSE_EDIT")
{
Loss=(int)StringToInteger(ObjectGetString(window,"USELossCLOSE_EDIT",OBJPROP_TEXT));
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_ENDEDIT && sparam=="USEProfitCLOSE_EDIT")
{
Profit=(int)StringToInteger(ObjectGetString(window,"USEProfitCLOSE_EDIT",OBJPROP_TEXT));
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="TypeClose_DOLLAR")
{
TypeofClose=1; ObjectSetInteger(window,"TypeClose_PERCENT",OBJPROP_STATE,false);
ObjectSetInteger(window,"TypeClose_POINT",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="TypeClose_PERCENT")
{
TypeofClose=2; ObjectSetInteger(window,"TypeClose_DOLLAR",OBJPROP_STATE,false);
ObjectSetInteger(window,"TypeClose_POINT",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="TypeClose_POINT")
{
TypeofClose=3; ObjectSetInteger(window,"TypeClose_DOLLAR",OBJPROP_STATE,false);
ObjectSetInteger(window,"TypeClose_PERCENT",OBJPROP_STATE,false);
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="USEProfitCLOSE")//ObjectSetInteger(window,"USEProfitCLOSE",OBJPROP_STATE,false);
{
startCloseBlock3();
ChartRedraw();
}
//+------------------------------------------------------------------+
//| Ðàáîòà ñ ×àðòàìè INFO |
//+------------------------------------------------------------------+
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="M1")
{
ChartOpen_A(0,1);TFToInd=1;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="M5")
{
ChartOpen_A(0,5);TFToInd=5;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="M15")
{
ChartOpen_A(0,15);TFToInd=15;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="M30")
{
ChartOpen_A(0,30);TFToInd=30;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="H1")
{
ChartOpen_A(0,PERIOD_H1);TFToInd=PERIOD_H1;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="H4")
{
ChartOpen_A(0,PERIOD_H4);TFToInd=PERIOD_H4;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="D1")
{
ChartOpen_A(0,PERIOD_D1);TFToInd=PERIOD_D1;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="W1")
{
ChartOpen_A(0,PERIOD_W1);TFToInd=PERIOD_W1;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="MN")
{
ChartOpen_A(0,PERIOD_MN1);TFToInd=PERIOD_MN1;
ChartRedraw();
}
//+------------------------------------------------------------------+
//| Ðàáîòà ñ ×àðòàìè Ind |
//+------------------------------------------------------------------+
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="M1_IND")
{
ChartOpen_A(0,1);TFToInd=1;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="M5_IND")
{
ChartOpen_A(0,5);TFToInd=5;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="M15_IND")
{
ChartOpen_A(0,15);TFToInd=15;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="M30_IND")
{
ChartOpen_A(0,30);TFToInd=30;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="H1_IND")
{
ChartOpen_A(0,PERIOD_H1);TFToInd=PERIOD_H1;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="H4_IND")
{
ChartOpen_A(0,PERIOD_H4);TFToInd=PERIOD_H4;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="D1_IND")
{
ChartOpen_A(0,PERIOD_D1);TFToInd=PERIOD_D1;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="W1_IND")
{
ChartOpen_A(0,PERIOD_W1);TFToInd=PERIOD_W1;
ChartRedraw();
}
if(id==CHARTEVENT_OBJECT_CLICK && sparam=="MN_IND")
{
ChartOpen_A(0,PERIOD_MN1);TFToInd=PERIOD_MN1;
ChartRedraw();
}
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
} // END START
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::: Ôóíêöèè ýêñïåðòà :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ïåðåâàðà÷èâàåò ïîçèöèþ |
//+----------------------------------------------------------------------------+
void REVERSE(string sSymbol)
{
if(PositionSelect(sSymbol)==true)
{
double lotR=PositionGetDouble(POSITION_VOLUME);
request.symbol = sSymbol;
request.volume = PositionGetDouble( POSITION_VOLUME )*2;
request.action=TRADE_ACTION_DEAL; // îïåðàöèÿ ñ ðûíêà
request.tp=0;
request.sl=0;
request.deviation=(ulong)((SymbolInfoDouble(sSymbol,SYMBOL_ASK)-SymbolInfoDouble(sSymbol,SYMBOL_BID))/SymbolInfoDouble(sSymbol,SYMBOL_POINT)); // ïî ñïðåäó
// request.type_filling=ORDER_FILLING_CANCEL;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
request.type=ORDER_TYPE_SELL;
request.price=SymbolInfoDouble(sSymbol,SYMBOL_BID);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
{
request.type=ORDER_TYPE_BUY;
request.price=SymbolInfoDouble(sSymbol,SYMBOL_ASK);
}
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Çàêðûâàåò ïîçèöèè óêàçàííîé âàëþòû |
//+----------------------------------------------------------------------------+
void CloseAll(string symToWork2)
{
if(PositionSelect(symToWork2)==true)
{
ClosePosition(symToWork2);
}
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Çàêðûâàåò âûáðàííóþ ïîçèöèþ |
//+----------------------------------------------------------------------------+
void ClosePosition(string sSymbol)
{
request.symbol = sSymbol;
request.volume = PositionGetDouble( POSITION_VOLUME );
request.action=TRADE_ACTION_DEAL; // îïåðàöèÿ ñ ðûíêà
request.tp=0;
request.sl=0;
request.deviation=(ulong)((SymbolInfoDouble(sSymbol,SYMBOL_ASK)-SymbolInfoDouble(sSymbol,SYMBOL_BID))/SymbolInfoDouble(sSymbol,SYMBOL_POINT)); // ïî ñïðåäó
// request.type_filling=ORDER_FILLING_CANCEL;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
request.type=ORDER_TYPE_SELL;
request.price=SymbolInfoDouble(sSymbol,SYMBOL_BID);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
{
request.type=ORDER_TYPE_BUY;
request.price=SymbolInfoDouble(sSymbol,SYMBOL_ASK);
}
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Îòêðûâàåò ïîçèöèþ Áàé ïî âûáðàííîé Âàëþòå |
//+----------------------------------------------------------------------------+
void OpenBUY(string symToWork2)
{
request.symbol = symToWork2;
request.volume = lotss;
request.action=TRADE_ACTION_DEAL; // îïåðàöèÿ ñ ðûíêà
if(TakeProfit==0)request.tp=0;else request.tp=SymbolInfoDouble(symToWork2,SYMBOL_BID)+TakeProfit*SymbolInfoDouble(symToWork2,SYMBOL_POINT);
if(StopLoss==0)request.sl=0;else request.sl=SymbolInfoDouble(symToWork2,SYMBOL_BID)-StopLoss*SymbolInfoDouble(symToWork2,SYMBOL_POINT);
request.deviation=(ulong)((SymbolInfoDouble(symToWork2,SYMBOL_ASK)-SymbolInfoDouble(symToWork2,SYMBOL_BID))/SymbolInfoDouble(symToWork2,SYMBOL_POINT)); // ïî ñïðåäó
// request.type_filling=ORDER_FILLING_CANCEL;
request.type=ORDER_TYPE_BUY;
request.price=SymbolInfoDouble(symToWork2,SYMBOL_ASK);
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Îòêðûâàåò ïîçèöèþ Ñåëë ïî âûáðàííîé Âàëþòå |
//+----------------------------------------------------------------------------+
void OpenSELL(string symToWork2)
{
request.symbol = symToWork2;
request.volume = lotss;
request.action=TRADE_ACTION_DEAL; // îïåðàöèÿ ñ ðûíêà
if(TakeProfit==0)request.tp=0;else request.tp=SymbolInfoDouble(symToWork2,SYMBOL_ASK)-TakeProfit*SymbolInfoDouble(symToWork2,SYMBOL_POINT);
if(StopLoss==0)request.sl=0;else request.sl=SymbolInfoDouble(symToWork2,SYMBOL_ASK)+StopLoss*SymbolInfoDouble(symToWork2,SYMBOL_POINT);
request.deviation=(ulong)((SymbolInfoDouble(symToWork2,SYMBOL_ASK)-SymbolInfoDouble(symToWork2,SYMBOL_BID))/SymbolInfoDouble(symToWork2,SYMBOL_POINT)); // ïî ñïðåäó
//request.type_filling=ORDER_FILLING_CANCEL;
request.type=ORDER_TYPE_SELL;
request.price=SymbolInfoDouble(symToWork2,SYMBOL_BID);
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ìîäèôèöèðóåò ïîçèöèè |
//+----------------------------------------------------------------------------+
//+------------------------------------------------------------------+
void Modify(string symToWork2,int sl2,int tp2)
//+------------------------------------------------------------------+
{
for(int pos=0; pos<PositionsTotal(); pos++)
{
if(PositionSelect(symToWork2))
{
stop_level=SymbolInfoInteger(PositionGetString(POSITION_SYMBOL),SYMBOL_TRADE_STOPS_LEVEL);
if(trailing_level<(int)stop_level) trailing_level=(int)stop_level;
if((PositionGetString(POSITION_SYMBOL)!=symToWork2)) continue;
order_open_price = PositionGetDouble(POSITION_PRICE_OPEN);
order_type = PositionGetInteger(POSITION_TYPE);
request.order = PositionGetInteger(POSITION_IDENTIFIER);
if(order_type==POSITION_TYPE_BUY)
{
double sl,tp;
if(sl2!=0) sl=SymbolInfoDouble(symToWork2,SYMBOL_BID)-sl2*SymbolInfoDouble(symToWork2,SYMBOL_POINT); else sl=0;
if(tp2!=0) tp=SymbolInfoDouble(symToWork2,SYMBOL_ASK)+tp2*SymbolInfoDouble(symToWork2,SYMBOL_POINT); else tp=0;
request.action=TRADE_ACTION_SLTP;
request.symbol = symToWork2;
request.sl = sl;
request.tp = tp;
request.deviation=slippage;
OrderSend(request,result);
continue;
}// end POSITION_TYPE_BUY
else if(order_type==POSITION_TYPE_SELL)
{
double sl,tp;
if(sl2!=0) sl=SymbolInfoDouble(symToWork2,SYMBOL_ASK)+sl2*SymbolInfoDouble(symToWork2,SYMBOL_POINT); else sl=0;
if(tp2!=0) tp=SymbolInfoDouble(symToWork2,SYMBOL_BID)-tp2*SymbolInfoDouble(symToWork2,SYMBOL_POINT); else tp=0;
request.action = TRADE_ACTION_SLTP;
request.symbol = symToWork2;
request.sl = sl;
request.tp = tp;
request.deviation=slippage;
OrderSend(request,result);
}// end POSITION_TYPE_SELL
}// end if select
}// end for
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Âêëþ÷àåò Òðàëëèíãñòîï |
//+----------------------------------------------------------------------------+
//+------------------------------------------------------------------+
void WorkWithPositions(string symToWork2)
//+------------------------------------------------------------------+
{
for(int pos=0; pos<PositionsTotal(); pos++)
{
if(PositionSelect(symToWork2))
{
stop_level=SymbolInfoInteger(PositionGetString(POSITION_SYMBOL),SYMBOL_TRADE_STOPS_LEVEL);
if(trailing_level<(int)stop_level) trailing_level=(int)stop_level;
if((PositionGetString(POSITION_SYMBOL)!=symToWork2)) continue;
order_open_price = PositionGetDouble(POSITION_PRICE_OPEN);
order_type = PositionGetInteger(POSITION_TYPE);
request.order = PositionGetInteger(POSITION_IDENTIFIER);
if(order_type==POSITION_TYPE_BUY)
{
// Òðåéëèíã ñòîï
if((trailing_level==0))continue; // óñëîâèå, ïðè êîòîðîì òðåéëèíã ñòîï íå ðàáîòàåò
double sl=PositionGetDouble(POSITION_SL);
double profit=PositionGetDouble(POSITION_PROFIT);
if(sl<0.0001)
{
sl=SymbolInfoDouble(symToWork2,SYMBOL_BID)-trailing_level*SymbolInfoDouble(symToWork2,SYMBOL_POINT);
request.action=TRADE_ACTION_SLTP;
request.symbol = symToWork2;
request.sl = sl;
request.tp = PositionGetDouble(POSITION_TP);
request.deviation=slippage;
OrderSend(request,result);
}
if((SymbolInfoDouble(symToWork2,SYMBOL_BID)>sl+(trailing_level+trailing_step)*SymbolInfoDouble(symToWork2,SYMBOL_POINT)))
//if(tick.bid > sl + (trailing_level + trailing_step) * _Point)
{
request.action = TRADE_ACTION_SLTP;
request.symbol = symToWork2;
request.sl = sl + trailing_step * SymbolInfoDouble(symToWork2,SYMBOL_POINT);
request.tp = PositionGetDouble(POSITION_TP);
request.deviation=slippage;
OrderSend(request,result);
}
continue;
}// end POSITION_TYPE_BUY
else if(order_type==POSITION_TYPE_SELL)
{
//--- Òðåéëèíã ñòîï
if((trailing_level==0)) continue;
double sl=PositionGetDouble(POSITION_SL);
double profit=PositionGetDouble(POSITION_PROFIT);
if(sl<0.0001)
{
sl=SymbolInfoDouble(symToWork2,SYMBOL_ASK)+trailing_level*SymbolInfoDouble(symToWork2,SYMBOL_POINT);
request.action = TRADE_ACTION_SLTP;
request.symbol = symToWork2;
request.sl = sl;
request.tp = PositionGetDouble(POSITION_TP);
request.deviation=slippage;
OrderSend(request,result);
}
if((SymbolInfoDouble(symToWork2,SYMBOL_ASK)<sl -(trailing_level+trailing_step)*SymbolInfoDouble(symToWork2,SYMBOL_POINT)))
{
request.action = TRADE_ACTION_SLTP;
request.symbol = symToWork2;
request.sl = sl - trailing_step * SymbolInfoDouble(symToWork2,SYMBOL_POINT);
request.tp = PositionGetDouble(POSITION_TP);
request.deviation=slippage;
OrderSend(request,result);
}
}// end POSITION_TYPE_SELL
}// end if select
}// end for
}
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::: Ñîçäàíèå îáúåêòîâ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
//+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+
// ==========================================================================================================================================================================================================
// ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
//
// Ïàíåëü äëÿ Âêëàäêè Pos
//
// ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
// ==========================================================================================================================================================================================================
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ðèñóåò øàïêó(Âûáîð Âàëþòíûõ ïàð) |
//+----------------------------------------------------------------------------+
void Header(int X=15,int Y=0)
{
// Øàïêà äëÿ ïàíåëè
ButtonCreate(Symbol1,Black,OldLace,X,Y,80,20,Symbol1);
ButtonCreate(Symbol2,Black,OldLace,X+80,Y,80,20,Symbol2);
ButtonCreate(Symbol3,Black,OldLace,X+160,Y,80,20,Symbol3);
ButtonCreate(Symbol4,Black,OldLace,X,Y+20,80,20,Symbol4);
ButtonCreate(Symbol5,Black,OldLace,X+80,Y+20,80,20,Symbol5);
ButtonCreate(Symbol6,Black,OldLace,X+160,Y+20,80,20,Symbol6);
}
int ynew=30;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ðèñóåì Òåëî Ïàíåëè |
//+----------------------------------------------------------------------------+
void body(int x)
{
//
ButtonCreate(buttonID8,Black,SkyBlue,x+183,ynew+90,60,20,"BUY",10);
ButtonCreate(buttonID9,Black,Linen,x+103,ynew+90,60,20,"SELL",10);
ButtonCreate("REVERSE",White,Green,x+135,ynew+45,70,17,"REVERSE",9);
ButtonCreate(buttonID,Black,Khaki,x+23,ynew+90,60,20,"CLOSE",10);
ButtonCreate("TrallingStop",Black,OldLace,x+15,ynew+160+ysdvig,74,20,"TRALLING",10);
ButtonCreate("Modify",Black,OldLace,x+98,ynew+160+ysdvig,153,20,"MODIFY",10);
ButtonCreate("Minimize2",Black,LightCyan,270,200,13,70,"<",10);
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ñîçäàåò Âêëàäêè ãëàâíûõ ñòðàíèö |
//+----------------------------------------------------------------------------+
void bodyVkladki(int x)
{
ButtonCreate("Pos",Black,LightCyan,x+8,270,40,15,"Pos",10);
ButtonCreate("Ord",Black,Linen,x+53,270,40,15,"Ord",10);
ButtonCreate("INFO",Black,Beige,x+98,270,40,15,"INFO",10);
ButtonCreate("Ind",Black,Beige,x+145,270,40,15,"Ind",10);
ButtonCreate("Func",Black,MistyRose,x+190,270,40,15,"Func",10);
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ñîçäàåò Ãëàâíóþ ïîäîëæêó ïîä ïàíåëü |
//+----------------------------------------------------------------------------+
void BGMAIN(int x)
{
//VirtPad_1.bmp
ObjectCreate(window,"BG",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BG",OBJPROP_XDISTANCE,x+0);
ObjectSetInteger(window,"BG",OBJPROP_YDISTANCE,0);
ObjectSetInteger(window,"BG",OBJPROP_XSIZE,400);
ObjectSetInteger(window,"BG",OBJPROP_YSIZE,200);
ObjectSetString(window,"BG",OBJPROP_BMPFILE,"VirtPad_1.bmp");
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ñîçäàåò êàðòèíêè èç ôàéëîâ íà ãðàôèêå |
//+----------------------------------------------------------------------------+
int ysdvig=25;
void BG(int x)
{
ObjectCreate(window,"BGBUY",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BGBUY",OBJPROP_XDISTANCE,x+173);
ObjectSetInteger(window,"BGBUY",OBJPROP_YDISTANCE,ynew+50);
ObjectSetInteger(window,"BGBUY",OBJPROP_XSIZE,77);
ObjectSetInteger(window,"BGBUY",OBJPROP_YSIZE,40);
ObjectSetString(window,"BGBUY",OBJPROP_BMPFILE,"buy.bmp");
ObjectCreate(window,"BGSELL",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BGSELL",OBJPROP_XDISTANCE,x+93);
ObjectSetInteger(window,"BGSELL",OBJPROP_YDISTANCE,ynew+50);
ObjectSetInteger(window,"BGSELL",OBJPROP_XSIZE,77);
ObjectSetInteger(window,"BGSELL",OBJPROP_YSIZE,40);
ObjectSetString(window,"BGSELL",OBJPROP_BMPFILE,"sell.bmp");
ObjectCreate(window,"BGClose",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BGClose",OBJPROP_XDISTANCE,x+15);
ObjectSetInteger(window,"BGClose",OBJPROP_YDISTANCE,ynew+50);
ObjectSetInteger(window,"BGClose",OBJPROP_XSIZE,77);
ObjectSetInteger(window,"BGClose",OBJPROP_YSIZE,40);
ObjectSetString(window,"BGClose",OBJPROP_BMPFILE,"close.bmp");
ObjectCreate(window,"BGTRAL",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BGTRAL",OBJPROP_XDISTANCE,x+18-4);
ObjectSetInteger(window,"BGTRAL",OBJPROP_YDISTANCE,ynew+114+ysdvig);
ObjectSetInteger(window,"BGTRAL",OBJPROP_XSIZE,66);
ObjectSetInteger(window,"BGTRAL",OBJPROP_YSIZE,19);
ObjectSetString(window,"BGTRAL",OBJPROP_BMPFILE,"tral.bmp");
ObjectCreate(window,"BGTP",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BGTP",OBJPROP_XDISTANCE,x+95);
ObjectSetInteger(window,"BGTP",OBJPROP_YDISTANCE,ynew+114+ysdvig);
ObjectSetInteger(window,"BGTP",OBJPROP_XSIZE,66);
ObjectSetInteger(window,"BGTP",OBJPROP_YSIZE,19);
ObjectSetString(window,"BGTP",OBJPROP_BMPFILE,"tp.bmp");
ObjectCreate(window,"BGSL",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BGSL",OBJPROP_XDISTANCE,x+178);
ObjectSetInteger(window,"BGSL",OBJPROP_YDISTANCE,ynew+114+ysdvig);
ObjectSetInteger(window,"BGSL",OBJPROP_XSIZE,66);
ObjectSetInteger(window,"BGSL",OBJPROP_YSIZE,19);
ObjectSetString(window,"BGSL",OBJPROP_BMPFILE,"sl.bmp");
ObjectCreate(window,"BGLOTS",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BGLOTS",OBJPROP_XDISTANCE,x+25);
ObjectSetInteger(window,"BGLOTS",OBJPROP_YDISTANCE,ynew+20+ysdvig);
ObjectSetInteger(window,"BGLOTS",OBJPROP_XSIZE,77);
ObjectSetInteger(window,"BGLOTS",OBJPROP_YSIZE,30);
ObjectSetString(window,"BGLOTS",OBJPROP_BMPFILE,"lot.bmp");
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå :Ïîëó÷åíèå áèä àñêà ïî ñèìâîëó è îòîáðàæåíèÿ èíôîðìàöèè â êâàäðàòàõ íà ïàíåëè |
//+----------------------------------------------------------------------------+
void SyMbolPriceRe(string Symboll)
{
int xxx=0;
double Bid=SymbolInfoDouble(Symboll,SYMBOL_BID);
double Ask=SymbolInfoDouble(Symboll,SYMBOL_ASK);
string a1,a2,a3,b1,b2,b3;
if(ObjectGetInteger(window,"Minimize2",OBJPROP_STATE)==true || ObjectGetInteger(window,"Func",OBJPROP_STATE)==true
|| ObjectGetInteger(window,"INFO",OBJPROP_STATE)==true || ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true)xxx=-500;
if(ObjectGetInteger(window,"Minimize2",OBJPROP_STATE)==false && ObjectGetInteger(window,"Func",OBJPROP_STATE)==false
&& ObjectGetInteger(window,"INFO",OBJPROP_STATE)==false && ObjectGetInteger(window,"Ind",OBJPROP_STATE)==false)xxx=0;
if(ObjectGetInteger(window,"BID",OBJPROP_XDISTANCE)<0 && ObjectGetInteger(window,"Pos",OBJPROP_STATE)==false)return;
if(SymbolInfoDouble(symToWork,SYMBOL_POINT)==0.00001 || SymbolInfoDouble(symToWork,SYMBOL_POINT)==0.0001)
{
b1=StringSubstr(DoubleToString(Bid,8),0,4);
b2=StringSubstr(DoubleToString(Bid,8),4,2);
b3=StringSubstr(DoubleToString(Bid,8),6,1);
priceCreate("BID",xxx+97,ynew+65,b1,15,Black);
priceCreate("BID2",xxx+137,ynew+62,b2,18,Yellow);
priceCreate("BID3",xxx+163,ynew+62,b3,10,Black);
a1=StringSubstr(DoubleToString(Ask,8),0,4);
a2=StringSubstr(DoubleToString(Ask,8),4,2);
a3=StringSubstr(DoubleToString(Ask,8),6,1);
priceCreate("Ask",xxx+177,ynew+65,a1,15,Black);
priceCreate("Ask2",xxx+217,ynew+62,a2,18,Yellow);
priceCreate("Ask3",xxx+243,ynew+62,a3,10,Black);
}
if(SymbolInfoDouble(symToWork,SYMBOL_POINT)==0.001 || SymbolInfoDouble(symToWork,SYMBOL_POINT)==0.01)
{
b1=StringSubstr(DoubleToString(Bid,8),0,3);
b2=StringSubstr(DoubleToString(Bid,8),3,2);
b3=StringSubstr(DoubleToString(Bid,8),5,1);
priceCreate("BID",xxx+105,ynew+65,b1,15,Black);
priceCreate("BID2",xxx+137,ynew+62,b2,18,Yellow);
priceCreate("BID3",xxx+163,ynew+62,b3,10,Black);
a1=StringSubstr(DoubleToString(Ask,8),0,3);
a2=StringSubstr(DoubleToString(Ask,8),3,2);
a3=StringSubstr(DoubleToString(Ask,8),5,1);
priceCreate("Ask",xxx+185,ynew+65,a1,15,Black);
priceCreate("Ask2",xxx+217,ynew+62,a2,18,Yellow);
priceCreate("Ask3",xxx+243,ynew+62,a3,10,Black);
}
PosInfo(xxx);
SeverInfo(xxx);
ChartRedraw();
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå :Äåíü Íåäåëè |
//+----------------------------------------------------------------------------+
int DayOfWeekMQL4()
{
MqlDateTime tm;
TimeCurrent(tm);
return(tm.day_of_week);
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå :Äåíü Íåäåëè âûáðàííîé äàòû |
//+----------------------------------------------------------------------------+
int TimeDayOfWeekMQL4(datetime date)
{
MqlDateTime tm;
TimeToStruct(date,tm);
return(tm.day_of_week);
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Èíôîðìàöèÿ î ïîäêëþ÷åíèè + Ïîñëåäíåå âðåìÿ êîòèðîâêè |
//+----------------------------------------------------------------------------+
void SeverInfo(int x=0)
{
/*
string con;
if(TerminalInfoInteger(TERMINAL_CONNECTED)==true)con="Connect";else con="Disconnect";
if(TimeDayOfWeekMQL4(TimeLocal())!=DayOfWeekMQL4())con="Market Close";
string time=TimeToString(TimeCurrent(),TIME_MINUTES|TIME_SECONDS);
ObjectCreate(window,"ServerTime",OBJ_EDIT,0,100,100);
if(con=="Connect") ObjectSetInteger(window,"ServerTime",OBJPROP_COLOR,DarkGreen);
if(con!="Connect") ObjectSetInteger(window,"ServerTime",OBJPROP_COLOR,DarkRed);
ObjectSetInteger(window,"ServerTime",OBJPROP_BGCOLOR,WhiteSmoke);
ObjectSetInteger(window,"ServerTime",OBJPROP_XDISTANCE,x+19);
ObjectSetInteger(window,"ServerTime",OBJPROP_YDISTANCE,225);
ObjectSetInteger(window,"ServerTime",OBJPROP_XSIZE,230);
ObjectSetInteger(window,"ServerTime",OBJPROP_YSIZE,22);
ObjectSetString(window,"ServerTime",OBJPROP_FONT,"Sans Serif");
ObjectSetString(window,"ServerTime",OBJPROP_TEXT,con+" "+time);
ObjectSetInteger(window,"ServerTime",OBJPROP_FONTSIZE,14);
ObjectSetInteger(window,"ServerTime",OBJPROP_READONLY,true); // èíà÷å íàæàòü íà íåå íåëüçÿ
*/
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Èíôîðìàöèÿ î îòêðûòîé ïîçèöèè |
//+----------------------------------------------------------------------------+
void PosInfo(int x=0)
{
if(PositionSelect(symToWork)==true)
{
double lotinfo=PositionGetDouble(POSITION_VOLUME);
int typeinfo=(int)PositionGetInteger(POSITION_TYPE);
string typepos;
if(typeinfo==POSITION_TYPE_SELL)typepos="SELL";
if(typeinfo==POSITION_TYPE_BUY)typepos="BUY";
if(typepos=="SELL") ObjectSetInteger(window,symToWork,OBJPROP_BGCOLOR,LightPink);
if(typepos=="BUY") ObjectSetInteger(window,symToWork,OBJPROP_BGCOLOR,PaleGreen);
double openinfo=PositionGetDouble(POSITION_PRICE_OPEN);
double profinfo=PositionGetDouble(POSITION_PROFIT)+PositionGetDouble(POSITION_SWAP)+PositionGetDouble(POSITION_COMMISSION);
ButtonCreateInfo("InfoPos",Navy,WhiteSmoke,x+15,45,240,24,typepos+" "+DoubleToString(lotinfo,2)+" at "+DoubleToString(openinfo,4)+"/ "+DoubleToString(profinfo,2),12);
}
if(PositionSelect(symToWork)==false)
{
ButtonCreateInfo("InfoPos",Navy,WhiteSmoke,x+15,45,240,24," NO POSITIONS",14);
ObjectSetInteger(window,symToWork,OBJPROP_BGCOLOR,OldLace);
}
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ñîçäàíèå êíîïêè Ñèìâîëà |
//+----------------------------------------------------------------------------+
void ButtonCreateInfo(string name,color TextColor,color bgcolor,int Xdist,int Ydist,int Xsize,int Ysize,string Text,int FONTSIZE=12)
{
ObjectCreate(window,name,OBJ_EDIT,0,100,100);
ObjectSetInteger(window,name,OBJPROP_COLOR,TextColor);
ObjectSetInteger(window,name,OBJPROP_BGCOLOR,bgcolor);
ObjectSetInteger(window,name,OBJPROP_XDISTANCE,Xdist);
ObjectSetInteger(window,name,OBJPROP_YDISTANCE,Ydist);
ObjectSetInteger(window,name,OBJPROP_XSIZE,Xsize);
ObjectSetInteger(window,name,OBJPROP_YSIZE,Ysize);
ObjectSetString(window,name,OBJPROP_FONT,"Sans Serif");
ObjectSetString(window,name,OBJPROP_TEXT,Text);
ObjectSetInteger(window,name,OBJPROP_FONTSIZE,FONTSIZE);
ObjectSetInteger(window,name,OBJPROP_READONLY,true); // èíà÷å íàæàòü íà íåå íåëüçÿ
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ñîçäàíèå Öåíîâîé ìåòêè |
//+----------------------------------------------------------------------------+
void priceCreate(string name,int Xd,int Yd,string text,int size,color cl,string tex="Arial")
{
ObjectCreate(window,name,OBJ_LABEL,0,100,100);
ObjectSetInteger(window,name,OBJPROP_COLOR,cl);
ObjectSetInteger(window,name,OBJPROP_XDISTANCE,Xd);
ObjectSetInteger(window,name,OBJPROP_YDISTANCE,Yd);
ObjectSetString(window,name,OBJPROP_FONT,tex);
ObjectSetString(window,name,OBJPROP_TEXT,text);
ObjectSetInteger(window,name,OBJPROP_FONTSIZE,size);
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå :Îáùàÿ ôóíêöèÿ Ñîçäàíèÿ ïàíåëè |
//+----------------------------------------------------------------------------+
void SetParametrsandCreate()
{
BGMAIN(0); // ÁåêÃÁåêÃðàóíä
if(ObjectGetInteger(window,"Func",OBJPROP_STATE)==true)
VKL_OTHERS(0);
if(ObjectGetInteger(window,"Pos",OBJPROP_STATE)==true ||
(ObjectGetInteger(window,"Pos",OBJPROP_STATE)==false
&& ObjectGetInteger(window,"Func",OBJPROP_STATE)==false
&& ObjectGetInteger(window,"INFO",OBJPROP_STATE)==false
&& ObjectGetInteger(window,"Ord",OBJPROP_STATE)==false
&& ObjectGetInteger(window,"Ind",OBJPROP_STATE)==false)
)
{
BG(0); // ÁåêÃÁåêÃðàóíä
body(0); // Òåëî êíîïîê
BODYLEVEL(-20,60);// Òåëî óðîâíåé
PosInfo();
SeverInfo();
}
if(ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true
)
{
VkladkaOrders(-20,60);
}
ButtonCreate("Minimize2",Black,LightCyan,270,200,13,70,"<",10);
if(ObjectGetInteger(window,"Func",OBJPROP_STATE)==false)
{
Header();// Øàïêà - âêëàäêè
}
SymINFOStart(Symbol1);
SymINFOStart(Symbol2);
SymINFOStart(Symbol3);
SymINFOStart(Symbol4);
SymINFOStart(Symbol5);
SymINFOStart(Symbol6);
SyMbolPriceRe(symToWork);
ChartOpen_A(0);
bodyVkladki(0); // Âêëàäêè
if(ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true)
{
VKL_IND();
}
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ìèíèìèçàöèÿ ïàíåëè |
//+----------------------------------------------------------------------------+
void HideSetParametrsand()
{
ChartOpen_A(-5000);
priceCreate("BID",-500+97,65,"",15,Black);
priceCreate("BID2",-500+137,60,"",20,Red);
priceCreate("Ask",-500+177,65,"",15,Black);
priceCreate("Ask2",-500+217,60,"",20,Green);
priceCreate("Ask3",-500+217,60,"",20,Green);
priceCreate("BID3",-500+137,60,"",20,Red);
PosInfo(-1000);
SeverInfo(-1000);
BGMAIN(-2000);
BG(-2000);
Header(-2000);// Øàïêà - âêëàäêè
body(-2000); // Òåëî êíîïîê
BODYLEVEL(-2000,60);// Òåëî óðîâíåé
bodyVkladki(-2000); // Âêëàäêè
InfoAboutSymbol(-2000);
VkladkaOrders(-500,-500);
VKL_OTHERS(-500);
VKL_IND(-2000);
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ñîçäàíèå êíîïîê |
//+----------------------------------------------------------------------------+
void ButtonCreate(string name,color TextColor,color bgcolor,int Xdist,int Ydist,int Xsize,int Ysize,string Text,int FONTSIZE=12)
{
ObjectCreate(window,name,OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,name,OBJPROP_COLOR,TextColor);
ObjectSetInteger(window,name,OBJPROP_BGCOLOR,bgcolor);
ObjectSetInteger(window,name,OBJPROP_XDISTANCE,Xdist);
ObjectSetInteger(window,name,OBJPROP_YDISTANCE,Ydist);
ObjectSetInteger(window,name,OBJPROP_XSIZE,Xsize);
ObjectSetInteger(window,name,OBJPROP_YSIZE,Ysize);
ObjectSetString(window,name,OBJPROP_FONT,"Sans Serif");
ObjectSetString(window,name,OBJPROP_TEXT,Text);
ObjectSetInteger(window,name,OBJPROP_FONTSIZE,FONTSIZE);
if(name==Symbol1)ObjectSetInteger(window,name,OBJPROP_SELECTABLE,true); // èíà÷å íàæàòü íà íåå íåëüçÿ
if(name!=Symbol1)ObjectSetInteger(window,name,OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Ñîçäàíèÿ îáüåêòîâ óïðàâëåíèÿ ñòîïàìè |
//+----------------------------------------------------------------------------+
void BODYLEVEL(int x,int y)
{
int a=30;
window=0;
int bb3=20;
int xx=10;
int xx2=130;
int SizeY=20;
color BG_CLOSEDELETE=Red;
lotss=NormalizeDouble(lot,2);
int xLOTS=10;
//
//+------------------------------------------------------------------+
//| Óâåëè÷åíèå/óìåíüøåíèå Óðîâíÿ òðàëëèíãñòîïà |
//+------------------------------------------------------------------+
ObjectCreate(window,"Tralling",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"Tralling",OBJPROP_XDISTANCE,x+30+xLOTS-5);
ObjectSetInteger(window,"Tralling",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvig);
ObjectSetInteger(window,"Tralling",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"Tralling",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"Tralling",OBJPROP_XSIZE,58);
ObjectSetInteger(window,"Tralling",OBJPROP_YSIZE,20);
ObjectSetString(window,"Tralling",OBJPROP_TEXT,DoubleToString(trailing_level,0));
ObjectSetInteger(window,"Tralling",OBJPROP_FONTSIZE,15);
ObjectSetInteger(window,"Tralling",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"Tralling ââåðõ",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"Tralling ââåðõ",OBJPROP_COLOR,White);
ObjectSetInteger(window,"Tralling ââåðõ",OBJPROP_BGCOLOR,Green);
ObjectSetInteger(window,"Tralling ââåðõ",OBJPROP_XDISTANCE,x+80+xLOTS+4);
ObjectSetInteger(window,"Tralling ââåðõ",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvig);
ObjectSetInteger(window,"Tralling ââåðõ",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"Tralling ââåðõ",OBJPROP_YSIZE,10);
ObjectSetString(window,"Tralling ââåðõ",OBJPROP_FONT,"Arial");
ObjectSetString(window,"Tralling ââåðõ",OBJPROP_TEXT,"+");
ObjectSetInteger(window,"Tralling ââåðõ",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"Tralling ââåðõ",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"Tralling âíèç",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"Tralling âíèç",OBJPROP_COLOR,White);
ObjectSetInteger(window,"Tralling âíèç",OBJPROP_BGCOLOR,Red);
ObjectSetInteger(window,"Tralling âíèç",OBJPROP_XDISTANCE,x+80+xLOTS+4);
ObjectSetInteger(window,"Tralling âíèç",OBJPROP_YDISTANCE,ynew+y+55+a+ysdvig);
ObjectSetInteger(window,"Tralling âíèç",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"Tralling âíèç",OBJPROP_YSIZE,10);
ObjectSetString(window,"Tralling âíèç",OBJPROP_FONT,"Arial");
ObjectSetString(window,"Tralling âíèç",OBJPROP_TEXT,"-");
ObjectSetInteger(window,"Tralling âíèç",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"Tralling âíèç",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
//+------------------------------------------------------------------+
//| Óâåëè÷åíèå/óìåíüøåíèå ëîòîâ |
//+------------------------------------------------------------------+
ObjectCreate(window,"Lots",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"Lots",OBJPROP_XDISTANCE,x+30+xLOTS);
ObjectSetInteger(window,"Lots",OBJPROP_YDISTANCE,ynew+y-25+a);
ObjectSetInteger(window,"Lots",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"Lots",OBJPROP_BGCOLOR,Lavender);
ObjectSetInteger(window,"Lots",OBJPROP_XSIZE,50);
ObjectSetInteger(window,"Lots",OBJPROP_YSIZE,20);
ObjectSetString(window,"Lots",OBJPROP_TEXT,DoubleToString(lotss,2));
ObjectSetInteger(window,"Lots",OBJPROP_FONTSIZE,15);
ObjectSetInteger(window,"Lots",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"Ëîò ââåðõ",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_COLOR,White);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_BGCOLOR,Green);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_XDISTANCE,x+82+xLOTS);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_YDISTANCE,ynew+y-25+a);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_YSIZE,10);
ObjectSetString(window,"Ëîò ââåðõ",OBJPROP_FONT,"Arial");
ObjectSetString(window,"Ëîò ââåðõ",OBJPROP_TEXT,"+");
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"Ëîò âíèç",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_COLOR,White);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_BGCOLOR,Red);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_XDISTANCE,x+82+xLOTS);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_YDISTANCE,ynew+y-15+a);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_YSIZE,10);
ObjectSetString(window,"Ëîò âíèç",OBJPROP_FONT,"Arial");
ObjectSetString(window,"Ëîò âíèç",OBJPROP_TEXT,"-");
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
//+------------------------------------------------------------------+
//| Óâåëè÷åíèå/óìåíüøåíèå TakeProfit |
//+------------------------------------------------------------------+
int xTakeProfit=10;
ObjectCreate(window,"TakeProfit",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"TakeProfit",OBJPROP_XDISTANCE,x+108+xTakeProfit);
ObjectSetInteger(window,"TakeProfit",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvig);
ObjectSetInteger(window,"TakeProfit",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"TakeProfit",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"TakeProfit",OBJPROP_XSIZE,55);
ObjectSetInteger(window,"TakeProfit",OBJPROP_YSIZE,20);
ObjectSetString(window,"TakeProfit",OBJPROP_TEXT,DoubleToString(TakeProfit,0));
ObjectSetInteger(window,"TakeProfit",OBJPROP_FONTSIZE,13);
ObjectSetInteger(window,"TakeProfit",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"TakeProfit ââåðõ",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_COLOR,White);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_BGCOLOR,Green);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_XDISTANCE,x+164+xTakeProfit);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvig);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_YSIZE,10);
ObjectSetString(window,"TakeProfit ââåðõ",OBJPROP_FONT,"Arial");
ObjectSetString(window,"TakeProfit ââåðõ",OBJPROP_TEXT,"+");
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"TakeProfit âíèç",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_COLOR,White);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_BGCOLOR,Red);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_XDISTANCE,x+164+xTakeProfit);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_YDISTANCE,ynew+y+55+a+ysdvig);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_YSIZE,10);
ObjectSetString(window,"TakeProfit âíèç",OBJPROP_FONT,"Arial");
ObjectSetString(window,"TakeProfit âíèç",OBJPROP_TEXT,"-");
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
//+------------------------------------------------------------------+
//| Óâåëè÷åíèå/óìåíüøåíèå StopLoss |
//+------------------------------------------------------------------+
int xStopLoss=10;
ObjectCreate(window,"StopLoss",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"StopLoss",OBJPROP_XDISTANCE,x+190+xStopLoss);
ObjectSetInteger(window,"StopLoss",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvig);
ObjectSetInteger(window,"StopLoss",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"StopLoss",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"StopLoss",OBJPROP_XSIZE,55);
ObjectSetInteger(window,"StopLoss",OBJPROP_YSIZE,20);
ObjectSetString(window,"StopLoss",OBJPROP_TEXT,DoubleToString(StopLoss,0));
ObjectSetInteger(window,"StopLoss",OBJPROP_FONTSIZE,13);
ObjectSetInteger(window,"StopLoss",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"StopLoss ââåðõ",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_COLOR,White);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_BGCOLOR,Green);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_XDISTANCE,x+246+xStopLoss);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvig);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_YSIZE,10);
ObjectSetString(window,"StopLoss ââåðõ",OBJPROP_FONT,"Arial");
ObjectSetString(window,"StopLoss ââåðõ",OBJPROP_TEXT,"+");
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"StopLoss âíèç",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_COLOR,White);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_BGCOLOR,Red);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_XDISTANCE,x+246+xStopLoss);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_YDISTANCE,ynew+y+55+a+ysdvig);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_YSIZE,10);
ObjectSetString(window,"StopLoss âíèç",OBJPROP_FONT,"Arial");
ObjectSetString(window,"StopLoss âíèç",OBJPROP_TEXT,"-");
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Ïðîâåðêà ñèìâîëà íà íàëè÷èå ïîçèöèé |
//+------------------------------------------------------------------+
void SymINFOStart(string symb)
{
if(PositionSelect(symb)==true)
{
int typeinfo=(int)PositionGetInteger(POSITION_TYPE);
string typepos;
if(typeinfo==POSITION_TYPE_SELL)typepos="SELL";
if(typeinfo==POSITION_TYPE_BUY)typepos="BUY";
if(typepos=="SELL") ObjectSetInteger(window,symb,OBJPROP_BGCOLOR,LightPink);
if(typepos=="BUY") ObjectSetInteger(window,symb,OBJPROP_BGCOLOR,PaleGreen);
}
}
// ==========================================================================================================================================================================================================
// ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
//
// Ïàíåëü äëÿ Âêëàäêè INFO
//
// ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
// ==========================================================================================================================================================================================================
void InfoAboutSymbol(int x=0)
{
if(ObjectGetInteger(window,"Minimize2",OBJPROP_STATE)==true || ObjectGetInteger(window,"Func",OBJPROP_STATE)==true
|| ObjectGetInteger(window,"Ord",OBJPROP_STATE)==true || ObjectGetInteger(window,"Pos",OBJPROP_STATE)==true || ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true)x=-500;
if(ObjectGetInteger(window,"Minimize2",OBJPROP_STATE)==false
&& ObjectGetInteger(window,"INFO",OBJPROP_STATE)==true)x=0;
if(ObjectGetInteger(window,"INFO_Desc",OBJPROP_XDISTANCE)<0 && ObjectGetInteger(window,"INFO",OBJPROP_STATE)==false)return;
int INFO_spread=(int)SymbolInfoInteger(symToWork,SYMBOL_SPREAD);
int INFO_stops=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
double INFO_point=SymbolInfoDouble(symToWork,SYMBOL_POINT);
double INFO_LotMin=SymbolInfoDouble(symToWork,SYMBOL_VOLUME_MIN);
double INFO_LotMax=SymbolInfoDouble(symToWork,SYMBOL_VOLUME_MAX);
double INFO_LotStep=SymbolInfoDouble(symToWork,SYMBOL_VOLUME_STEP);
double INFO_SWAPLong=SymbolInfoDouble(symToWork,SYMBOL_SWAP_LONG);
double INFO_SWAPshort=SymbolInfoDouble(symToWork,SYMBOL_SWAP_SHORT);
string INFO_Bank=SymbolInfoString(symToWork,SYMBOL_BANK);
string INFO_Desc=SymbolInfoString(symToWork,SYMBOL_DESCRIPTION);
ObjectCreate(window,"RectLabelInfo",OBJ_RECTANGLE_LABEL,0,0,0);
ObjectSetInteger(window,"RectLabelInfo",OBJPROP_XDISTANCE,x+15);
ObjectSetInteger(window,"RectLabelInfo",OBJPROP_YDISTANCE,50);
ObjectSetInteger(window,"RectLabelInfo",OBJPROP_XSIZE,239);
ObjectSetInteger(window,"RectLabelInfo",OBJPROP_YSIZE,150);
ObjectSetInteger(window,"RectLabelInfo",OBJPROP_BORDER_TYPE,1);
ObjectSetInteger(window,"RectLabelInfo",OBJPROP_BGCOLOR,WhiteSmoke);
LabelCreate("INFO_Desc",Green,x+20,55,INFO_Desc);
LabelCreate("INFO_spread",Green,x+20,72,"SPREAD",10); LabelCreate("INFO_spread"+"Var",Red,x+130,72,(string)INFO_spread,11);
LabelCreate("INFO_stops",Green,x+20,85,"STOP",10); LabelCreate("INFO_stops"+"Var",Red,x+130,85,(string)INFO_stops,11);
LabelCreate("INFO_point",Green,x+20,100,"POINT",10); LabelCreate("INFO_point"+"Var",Red,x+130,100,DoubleToString(INFO_point,5),11);
LabelCreate("INFO_LotMin",Green,x+20,115,"LOT_MIN",10); LabelCreate("INFO_LotMin"+"Var",Red,x+130,115,DoubleToString(INFO_LotMin,2),11);
LabelCreate("INFO_LotMax",Green,x+20,130,"LOT_MAX",10); LabelCreate("INFO_LotMax"+"Var",Red,x+130,130,DoubleToString(INFO_LotMax,2),11);
LabelCreate("INFO_LotStep",Green,x+20,145,"LOT_STEP",10); LabelCreate("INFO_LotStep"+"Var",Red,x+130,145,DoubleToString(INFO_LotStep,2),11);
LabelCreate("INFO_SWAPLong",Green,x+20,160,"SWAP_LONG",10); LabelCreate("INFO_SWAPLong"+"Var",Red,x+130,160,DoubleToString(INFO_SWAPLong,2),11);
LabelCreate("INFO_SWAPshort",Green,x+20,175,"SWAP_SHORT",10); LabelCreate("INFO_SWAPshort"+"Var",Red,x+130,175,DoubleToString(INFO_SWAPshort,2),11);
ObjectCreate(window,"TFARROW",OBJ_RECTANGLE_LABEL,0,0,0);
ObjectSetInteger(window,"TFARROW",OBJPROP_XDISTANCE,x+15);
ObjectSetInteger(window,"TFARROW",OBJPROP_YDISTANCE,202);
ObjectSetInteger(window,"TFARROW",OBJPROP_XSIZE,239);
ObjectSetInteger(window,"TFARROW",OBJPROP_YSIZE,47);
ObjectSetInteger(window,"TFARROW",OBJPROP_BORDER_TYPE,1);
ObjectSetInteger(window,"TFARROW",OBJPROP_BGCOLOR,MintCream);
LabelCreate("M1",Black,x+20,205,"M1",10);
LabelCreate("M5",Black,x+45,205,"M5",10);
LabelCreate("M15",Black,x+70,205,"M15",10);
LabelCreate("M30",Black,x+100,205,"M30",10);
LabelCreate("H1",Black,x+130,205,"H1",10);
LabelCreate("H4",Black,x+155,205,"H4",10);
LabelCreate("D1",Black,x+180,205,"D1",10);
LabelCreate("W1",Black,x+205,205,"W1",10);
LabelCreate("MN",Black,x+230,205,"MN",10);
ArrowCreate("M1"+"ARROW",x+20,220,iOpenMQL4(symToWork,1,0),iCloseMQL4(symToWork,1,0));
ArrowCreate("M5"+"ARROW",x+45,220,iOpenMQL4(symToWork,5,0),iCloseMQL4(symToWork,5,0));
ArrowCreate("M15"+"ARROW",x+75,220,iOpenMQL4(symToWork,15,0),iCloseMQL4(symToWork,15,0));
ArrowCreate("M30"+"ARROW",x+105,220,iOpenMQL4(symToWork,30,0),iCloseMQL4(symToWork,30,0));
ArrowCreate("H1"+"ARROW",x+130,220,iOpenMQL4(symToWork,60,0),iCloseMQL4(symToWork,60,0));
ArrowCreate("H4"+"ARROW",x+155,220,iOpenMQL4(symToWork,240,0),iCloseMQL4(symToWork,240,0));
ArrowCreate("D1"+"ARROW",x+180,220,iOpenMQL4(symToWork,1440,0),iCloseMQL4(symToWork,1440,0));
ArrowCreate("W1"+"ARROW",x+205,220,iOpenMQL4(symToWork,10080,0),iCloseMQL4(symToWork,10080,0));
ArrowCreate("MN"+"ARROW",x+230,220,iOpenMQL4(symToWork,43200,0),iCloseMQL4(symToWork,43200,0));
}
//+------------------------------------------------------------------+
//| Ïðè íàæàòèè íà ÒÔ îòêðûâàåì ×ÀÐÒ |
//+------------------------------------------------------------------+
void ChartOpen_A(int x=0,int TF=0)
{
int TF2;
if(TF==0)TF2=Period();else TF2=TF;
if(ObjectFind(window,"CreateChart")<0 && (ObjectGetInteger(window,"INFO",OBJPROP_STATE)==true || ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true))
{
ObjectCreate(window,"CreateChart",OBJ_CHART,0,0,0);
ObjectSetInteger(window,"CreateChart",OBJPROP_XDISTANCE,x+270);
ObjectSetInteger(window,"CreateChart",OBJPROP_YDISTANCE,0);
ObjectSetString(window,"CreateChart",OBJPROP_SYMBOL,symToWork);
ObjectSetInteger(window,"CreateChart",OBJPROP_PERIOD,TF2);
}
else
{
if(ObjectGetInteger(window,"CreateChart",OBJPROP_PERIOD)==TF || ObjectGetInteger(window,"Minimize2",OBJPROP_STATE)==true) ChartCloseDel_A();
else
{
if(TF!=0)
if(ObjectGetInteger(window,"Minimize2",OBJPROP_STATE)==false
&& (ObjectGetInteger(window,"INFO",OBJPROP_STATE)==true || ObjectGetInteger(window,"Ind",OBJPROP_STATE)==true))
{
ObjectCreate(window,"CreateChart",OBJ_CHART,0,0,0);
ObjectSetInteger(window,"CreateChart",OBJPROP_XDISTANCE,x+270);
ObjectSetInteger(window,"CreateChart",OBJPROP_YDISTANCE,0);
ObjectSetString(window,"CreateChart",OBJPROP_SYMBOL,symToWork);
ObjectSetInteger(window,"CreateChart",OBJPROP_PERIOD,TF2);
}
}
}
}
//+------------------------------------------------------------------+
//| Ïðè íàæàòèè íà ÒÔ çàêðûâàåì ×ÀÐÒ |
//+------------------------------------------------------------------+
void ChartCloseDel_A()
{
ObjectDelete(window,"CreateChart");
}
//+------------------------------------------------------------------+
//| Ïðè íàæàòèè íà Ïàðó Ñìåíà âàëþòû |
//+------------------------------------------------------------------+
void ChartClose_A(string Symbols="")
{
ObjectSetString(window,"CreateChart",OBJPROP_SYMBOL,Symbols);
}
//+------------------------------------------------------------------+
//| Ñîçäàåì îáúåêò äëÿ Èíôîðì Ïàíåëè |
//+------------------------------------------------------------------+
void LabelCreate(string name,color TextColor,int Xdist,int Ydist,string Text,int FONTSIZE=12)
{
ObjectCreate(window,name,OBJ_LABEL,0,100,100);
ObjectSetInteger(window,name,OBJPROP_XDISTANCE,Xdist);
ObjectSetInteger(window,name,OBJPROP_YDISTANCE,Ydist);
ObjectSetInteger(window,name,OBJPROP_COLOR,TextColor);
ObjectSetString(window,name,OBJPROP_TEXT,Text);
ObjectSetInteger(window,name,OBJPROP_FONTSIZE,FONTSIZE);
}
//+------------------------------------------------------------------+
//| Ðèñóåì Ñòðåëêè äëÿ Âûâîäà èíôîðìàöèè î ñîñòîÿíèè äâèæåíèÿ |
//+------------------------------------------------------------------+
void ArrowCreate(string name,int Xdist,int Ydist,double open,double close,int FONTSIZE=12)
{
if(open<close)
{
if(ObjectGetString(window,name,OBJPROP_TEXT)!="Ý" || ObjectGetInteger(window,name,OBJPROP_XDISTANCE)!=Xdist)
{
ObjectCreate(window,name,OBJ_LABEL,0,0,0);
ObjectSetInteger(window,name,OBJPROP_XDISTANCE,Xdist);
ObjectSetInteger(window,name,OBJPROP_YDISTANCE,Ydist);
ObjectSetInteger(window,name,OBJPROP_COLOR,Green);
ObjectSetInteger(window,name,OBJPROP_FONTSIZE,FONTSIZE);
ObjectSetString(window,name,OBJPROP_FONT,"WingDings");
ObjectSetString(window,name,OBJPROP_TEXT,"Ý");
}
}
if(open>close)
{
if(ObjectGetString(window,name,OBJPROP_TEXT)!="Þ" || ObjectGetInteger(window,name,OBJPROP_XDISTANCE)!=Xdist)
{
ObjectCreate(window,name,OBJ_LABEL,0,0,0);
ObjectSetInteger(window,name,OBJPROP_XDISTANCE,Xdist);
ObjectSetInteger(window,name,OBJPROP_YDISTANCE,Ydist);
ObjectSetInteger(window,name,OBJPROP_COLOR,Red);
ObjectSetInteger(window,name,OBJPROP_FONTSIZE,FONTSIZE);
ObjectSetString(window,name,OBJPROP_FONT,"WingDings");
ObjectSetString(window,name,OBJPROP_TEXT,"Þ");
}
}
if(open==close)
{
if(ObjectGetString(window,name,OBJPROP_TEXT)!="ó" || ObjectGetInteger(window,name,OBJPROP_XDISTANCE)!=Xdist)
{
ObjectCreate(window,name,OBJ_LABEL,0,0,0);
ObjectSetInteger(window,name,OBJPROP_XDISTANCE,Xdist);
ObjectSetInteger(window,name,OBJPROP_YDISTANCE,Ydist);
ObjectSetInteger(window,name,OBJPROP_COLOR,Gray);
ObjectSetInteger(window,name,OBJPROP_FONTSIZE,FONTSIZE);
ObjectSetString(window,name,OBJPROP_FONT,"WingDings");
ObjectSetString(window,name,OBJPROP_TEXT,"ó");
}
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Âîçâðàùàåò çíà÷åíèå öåíû îòêðûòèÿ óêàçàííîãî ïàðàìåòðîì shift áàðà
//| ñ ñîîòâåòñòâóþùåãî ãðàôèêà (symbol, timeframe). |
//+------------------------------------------------------------------+
double iOpenMQL4(string symbol,int tf,int index)
{
if(index<0) return(-1);
double Arr[];
ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
if(CopyOpen(symbol,timeframe,index,1,Arr)>0)
return(Arr[0]);
else return(-1);
}
//+------------------------------------------------------------------+
//| Âîçâðàùàåò çíà÷åíèå öåíû çàêðûòèÿ óêàçàííîãî ïàðàìåòðîì shift áàðà
//| ñ ñîîòâåòñòâóþùåãî ãðàôèêà (symbol, timeframe). |
//+------------------------------------------------------------------+
double iCloseMQL4(string symbol,int tf,int index)
{
if(index<0) return(-1);
double Arr[];
ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
if(CopyClose(symbol,timeframe,index,1,Arr)>0)
return(Arr[0]);
else return(-1);
}
//+------------------------------------------------------------------+
//| Âîçâðàùàåò ÒàéìÔðåéì ïî Ìèíóòàì |
//+------------------------------------------------------------------+
ENUM_TIMEFRAMES TFMigrate(int tf)
{
switch(tf)
{
case 0: return(PERIOD_CURRENT);
case 1: return(PERIOD_M1);
case 5: return(PERIOD_M5);
case 15: return(PERIOD_M15);
case 30: return(PERIOD_M30);
case 60: return(PERIOD_H1);
case 240: return(PERIOD_H4);
case 1440: return(PERIOD_D1);
case 10080: return(PERIOD_W1);
case 43200: return(PERIOD_MN1);
case 2: return(PERIOD_M2);
case 3: return(PERIOD_M3);
case 4: return(PERIOD_M4);
case 6: return(PERIOD_M6);
case 10: return(PERIOD_M10);
case 12: return(PERIOD_M12);
case 16385: return(PERIOD_H1);
case 16386: return(PERIOD_H2);
case 16387: return(PERIOD_H3);
case 16388: return(PERIOD_H4);
case 16390: return(PERIOD_H6);
case 16392: return(PERIOD_H8);
case 16396: return(PERIOD_H12);
case 16408: return(PERIOD_D1);
case 32769: return(PERIOD_W1);
case 49153: return(PERIOD_MN1);
default: return(PERIOD_CURRENT);
}
}
//+------------------------------------------------------------------+
// ==========================================================================================================================================================================================================
// ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
//
// Ïàíåëü äëÿ Âêëàäêè Ord
//
// ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
// ==========================================================================================================================================================================================================
int ysdvigORD=25;
void VkladkaOrders(int x,int y)
{
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
ButtonCreate("DELETE",Black,Khaki,x+119,y+10,70,20,"DELETE",10);
ButtonCreate("BUYSTOP",Black,LightBlue,x+35,y+10,80,20,"BUYSTOP",10);
ButtonCreate("SELLSTOP",Black,LightPink,x+35,y+35,80,20,"SELLSTOP",10);
ButtonCreate("BUYLIMIT",Black,LightBlue,x+193,y+10,80,20,"BUYLIMIT",10);
ButtonCreate("SELLLIMIT",Black,LightPink,x+193,y+35,80,20,"SELLLIMIT",10);
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
ObjectCreate(window,"BGLS",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BGLS",OBJPROP_XDISTANCE,x+15+19);
ObjectSetInteger(window,"BGLS",OBJPROP_YDISTANCE,y+ynew+34+ysdvigORD);
ObjectSetInteger(window,"BGLS",OBJPROP_XSIZE,66);
ObjectSetInteger(window,"BGLS",OBJPROP_YSIZE,19);
ObjectSetString(window,"BGLS",OBJPROP_BMPFILE,"ls.bmp");
ObjectCreate(window,"BGTP",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BGTP",OBJPROP_XDISTANCE,x+95+20);
ObjectSetInteger(window,"BGTP",OBJPROP_YDISTANCE,y+ynew+34+ysdvigORD);
ObjectSetInteger(window,"BGTP",OBJPROP_XSIZE,66);
ObjectSetInteger(window,"BGTP",OBJPROP_YSIZE,19);
ObjectSetString(window,"BGTP",OBJPROP_BMPFILE,"tp.bmp");
ObjectCreate(window,"BGSL",OBJ_BITMAP_LABEL,0,100,100);
ObjectSetInteger(window,"BGSL",OBJPROP_XDISTANCE,x+178+20);
ObjectSetInteger(window,"BGSL",OBJPROP_YDISTANCE,y+ynew+34+ysdvigORD);
ObjectSetInteger(window,"BGSL",OBJPROP_XSIZE,66);
ObjectSetInteger(window,"BGSL",OBJPROP_YSIZE,19);
ObjectSetString(window,"BGSL",OBJPROP_BMPFILE,"sl.bmp");
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int a=10;
window=0;
int bb3=20;
int xx=10;
int xx2=130;
int SizeY=20;
color BG_CLOSEDELETE=Red;
lotss=NormalizeDouble(lot,2);
int xLOTS=10;
//
/*
ObjectCreate(window,"OrdersGRIDER",OBJ_RECTANGLE_LABEL,0,0,0);
ObjectSetInteger(window,"OrdersGRIDER",OBJPROP_XDISTANCE,x+35);
ObjectSetInteger(window,"OrdersGRIDER",OBJPROP_YDISTANCE,ynew+y+70+a+ysdvigORD);
ObjectSetInteger(window,"OrdersGRIDER",OBJPROP_XSIZE,240);
ObjectSetInteger(window,"OrdersGRIDER",OBJPROP_YSIZE,30);
ObjectSetInteger(window,"OrdersGRIDER",OBJPROP_BORDER_TYPE,1);
ObjectSetInteger(window,"OrdersGRIDER",OBJPROP_BGCOLOR,WhiteSmoke);
*/
ObjectCreate(window,"OrderLevelStopGRID",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"OrderLevelStopGRID",OBJPROP_XDISTANCE,x+119);
ObjectSetInteger(window,"OrderLevelStopGRID",OBJPROP_YDISTANCE,120+ysdvigORD);
ObjectSetInteger(window,"OrderLevelStopGRID",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"OrderLevelStopGRID",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"OrderLevelStopGRID",OBJPROP_XSIZE,69);
ObjectSetInteger(window,"OrderLevelStopGRID",OBJPROP_YSIZE,20);
ObjectSetString(window,"OrderLevelStopGRID",OBJPROP_TEXT,DoubleToString(GRIDNUMBER,0));
ObjectSetInteger(window,"OrderLevelStopGRID",OBJPROP_FONTSIZE,15);
ObjectSetInteger(window,"OrderLevelStopGRID",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
// LabelCreate("OrderTextGRID",Green,x+50,ynew+y+75+a+ysdvigORD,"GRID amount ");
//+------------------------------------------------------------------+
//| Óâåëè÷åíèå/óìåíüøåíèå Óðîâíÿ òðàëëèíãñòîïà |
//+------------------------------------------------------------------+
ObjectCreate(window,"OrderLevelStop",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"OrderLevelStop",OBJPROP_XDISTANCE,x+24+xLOTS);
ObjectSetInteger(window,"OrderLevelStop",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvigORD);
ObjectSetInteger(window,"OrderLevelStop",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"OrderLevelStop",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"OrderLevelStop",OBJPROP_XSIZE,60);
ObjectSetInteger(window,"OrderLevelStop",OBJPROP_YSIZE,20);
ObjectSetString(window,"OrderLevelStop",OBJPROP_TEXT,DoubleToString(OrderLevelStop,0));
ObjectSetInteger(window,"OrderLevelStop",OBJPROP_FONTSIZE,15);
ObjectSetInteger(window,"OrderLevelStop",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"OrderLevelStop ââåðõ",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"OrderLevelStop ââåðõ",OBJPROP_COLOR,White);
ObjectSetInteger(window,"OrderLevelStop ââåðõ",OBJPROP_BGCOLOR,Green);
ObjectSetInteger(window,"OrderLevelStop ââåðõ",OBJPROP_XDISTANCE,x+84+xLOTS);
ObjectSetInteger(window,"OrderLevelStop ââåðõ",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvigORD);
ObjectSetInteger(window,"OrderLevelStop ââåðõ",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"OrderLevelStop ââåðõ",OBJPROP_YSIZE,10);
ObjectSetString(window,"OrderLevelStop ââåðõ",OBJPROP_FONT,"Arial");
ObjectSetString(window,"OrderLevelStop ââåðõ",OBJPROP_TEXT,"+");
ObjectSetInteger(window,"OrderLevelStop ââåðõ",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"OrderLevelStop ââåðõ",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"OrderLevelStop âíèç",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"OrderLevelStop âíèç",OBJPROP_COLOR,White);
ObjectSetInteger(window,"OrderLevelStop âíèç",OBJPROP_BGCOLOR,Red);
ObjectSetInteger(window,"OrderLevelStop âíèç",OBJPROP_XDISTANCE,x+84+xLOTS);
ObjectSetInteger(window,"OrderLevelStop âíèç",OBJPROP_YDISTANCE,ynew+y+55+a+ysdvigORD);
ObjectSetInteger(window,"OrderLevelStop âíèç",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"OrderLevelStop âíèç",OBJPROP_YSIZE,10);
ObjectSetString(window,"OrderLevelStop âíèç",OBJPROP_FONT,"Arial");
ObjectSetString(window,"OrderLevelStop âíèç",OBJPROP_TEXT,"-");
ObjectSetInteger(window,"OrderLevelStop âíèç",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"OrderLevelStop âíèç",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
//+------------------------------------------------------------------+
//| Óâåëè÷åíèå/óìåíüøåíèå ëîòîâ |
//+------------------------------------------------------------------+
ObjectCreate(window,"Lots",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"Lots",OBJPROP_XDISTANCE,x+110+xLOTS);
ObjectSetInteger(window,"Lots",OBJPROP_YDISTANCE,ynew+y-5+a);
ObjectSetInteger(window,"Lots",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"Lots",OBJPROP_BGCOLOR,Lavender);
ObjectSetInteger(window,"Lots",OBJPROP_XSIZE,50);
ObjectSetInteger(window,"Lots",OBJPROP_YSIZE,20);
ObjectSetString(window,"Lots",OBJPROP_TEXT,DoubleToString(lotss,2));
ObjectSetInteger(window,"Lots",OBJPROP_FONTSIZE,15);
ObjectSetInteger(window,"Lots",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"Ëîò ââåðõ",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_COLOR,White);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_BGCOLOR,Green);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_XDISTANCE,x+162+xLOTS);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_YDISTANCE,ynew+y-5+a);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_YSIZE,10);
ObjectSetString(window,"Ëîò ââåðõ",OBJPROP_FONT,"Arial");
ObjectSetString(window,"Ëîò ââåðõ",OBJPROP_TEXT,"+");
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"Ëîò ââåðõ",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"Ëîò âíèç",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_COLOR,White);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_BGCOLOR,Red);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_XDISTANCE,x+162+xLOTS);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_YDISTANCE,ynew+y+5+a);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_YSIZE,10);
ObjectSetString(window,"Ëîò âíèç",OBJPROP_FONT,"Arial");
ObjectSetString(window,"Ëîò âíèç",OBJPROP_TEXT,"-");
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"Ëîò âíèç",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
//+------------------------------------------------------------------+
//| Óâåëè÷åíèå/óìåíüøåíèå TakeProfit |
//+------------------------------------------------------------------+
int xTakeProfit=10;
ObjectCreate(window,"TakeProfit",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"TakeProfit",OBJPROP_XDISTANCE,x+108+xTakeProfit);
ObjectSetInteger(window,"TakeProfit",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvigORD);
ObjectSetInteger(window,"TakeProfit",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"TakeProfit",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"TakeProfit",OBJPROP_XSIZE,55);
ObjectSetInteger(window,"TakeProfit",OBJPROP_YSIZE,20);
ObjectSetString(window,"TakeProfit",OBJPROP_TEXT,DoubleToString(TakeProfit,0));
ObjectSetInteger(window,"TakeProfit",OBJPROP_FONTSIZE,13);
ObjectSetInteger(window,"TakeProfit",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"TakeProfit ââåðõ",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_COLOR,White);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_BGCOLOR,Green);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_XDISTANCE,x+164+xTakeProfit);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvigORD);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_YSIZE,10);
ObjectSetString(window,"TakeProfit ââåðõ",OBJPROP_FONT,"Arial");
ObjectSetString(window,"TakeProfit ââåðõ",OBJPROP_TEXT,"+");
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"TakeProfit ââåðõ",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"TakeProfit âíèç",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_COLOR,White);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_BGCOLOR,Red);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_XDISTANCE,x+164+xTakeProfit);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_YDISTANCE,ynew+y+55+a+ysdvigORD);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_YSIZE,10);
ObjectSetString(window,"TakeProfit âíèç",OBJPROP_FONT,"Arial");
ObjectSetString(window,"TakeProfit âíèç",OBJPROP_TEXT,"-");
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"TakeProfit âíèç",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
//+------------------------------------------------------------------+
//| Óâåëè÷åíèå/óìåíüøåíèå StopLoss |
//+------------------------------------------------------------------+
int xStopLoss=10;
ObjectCreate(window,"StopLoss",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"StopLoss",OBJPROP_XDISTANCE,x+190+xStopLoss);
ObjectSetInteger(window,"StopLoss",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvigORD);
ObjectSetInteger(window,"StopLoss",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"StopLoss",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"StopLoss",OBJPROP_XSIZE,55);
ObjectSetInteger(window,"StopLoss",OBJPROP_YSIZE,20);
ObjectSetString(window,"StopLoss",OBJPROP_TEXT,DoubleToString(StopLoss,0));
ObjectSetInteger(window,"StopLoss",OBJPROP_FONTSIZE,13);
ObjectSetInteger(window,"StopLoss",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"StopLoss ââåðõ",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_COLOR,White);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_BGCOLOR,Green);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_XDISTANCE,x+246+xStopLoss);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_YDISTANCE,ynew+y+45+a+ysdvigORD);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_YSIZE,10);
ObjectSetString(window,"StopLoss ââåðõ",OBJPROP_FONT,"Arial");
ObjectSetString(window,"StopLoss ââåðõ",OBJPROP_TEXT,"+");
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"StopLoss ââåðõ",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ObjectCreate(window,"StopLoss âíèç",OBJ_BUTTON,0,100,100);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_COLOR,White);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_BGCOLOR,Red);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_XDISTANCE,x+246+xStopLoss);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_YDISTANCE,ynew+y+55+a+ysdvigORD);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_XSIZE,15);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_YSIZE,10);
ObjectSetString(window,"StopLoss âíèç",OBJPROP_FONT,"Arial");
ObjectSetString(window,"StopLoss âíèç",OBJPROP_TEXT,"-");
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_FONTSIZE,10);
ObjectSetInteger(window,"StopLoss âíèç",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Îòêðûâàåò ïîçèöèþ OpenSELLSTOP |
//+----------------------------------------------------------------------------+
void OpenSELLSTOP()
{
for(int i=1;i<=GRIDNUMBER;i++)
{
if(OrderLevelStop!=0&&OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderPricePip=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
else OrderPricePip=OrderLevelStop;
request.symbol = symToWork;
request.volume = lotss;
request.action=TRADE_ACTION_PENDING; // îïåðàöèÿ ñ ðûíêà
if(TakeProfit==0)request.tp=0;else request.tp=SymbolInfoDouble(symToWork,SYMBOL_BID)-OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT)-TakeProfit*SymbolInfoDouble(symToWork,SYMBOL_POINT);
if(StopLoss==0)request.sl=0;else request.sl=SymbolInfoDouble(symToWork,SYMBOL_BID)-OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT)+StopLoss*SymbolInfoDouble(symToWork,SYMBOL_POINT);
request.deviation=(ulong)((SymbolInfoDouble(symToWork,SYMBOL_ASK)-SymbolInfoDouble(symToWork,SYMBOL_BID))/SymbolInfoDouble(symToWork,SYMBOL_POINT)); // ïî ñïðåäó
// request.type_filling=ORDER_FILLING_CANCEL;
request.type=ORDER_TYPE_SELL_STOP;
request.price=SymbolInfoDouble(symToWork,SYMBOL_BID)-OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT);
request.type_time=ORDER_TIME_GTC;
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
}
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Îòêðûâàåò ïîçèöèþ OpenBUYSTOP |
//+----------------------------------------------------------------------------+
void OpenBUYSTOP()
{
for(int i=1;i<=GRIDNUMBER;i++)
{
if(OrderLevelStop!=0&&OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderPricePip=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
else OrderPricePip=OrderLevelStop;
request.symbol= symToWork;
request.volume= lotss;
request.action=TRADE_ACTION_PENDING; // îïåðàöèÿ ñ ðûíêà
if(TakeProfit==0)request.tp=0;else request.tp=SymbolInfoDouble(symToWork,SYMBOL_ASK)+TakeProfit*SymbolInfoDouble(symToWork,SYMBOL_POINT)+OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT);
if(StopLoss==0)request.sl=0;else request.sl=SymbolInfoDouble(symToWork,SYMBOL_ASK)-StopLoss*SymbolInfoDouble(symToWork,SYMBOL_POINT)+OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT);
request.deviation=(ulong)((SymbolInfoDouble(symToWork,SYMBOL_ASK)-SymbolInfoDouble(symToWork,SYMBOL_BID))/SymbolInfoDouble(symToWork,SYMBOL_POINT)); // ïî ñïðåäó
//request.type_filling=ORDER_FILLING_CANCEL;
request.type=ORDER_TYPE_BUY_STOP;
request.price=SymbolInfoDouble(symToWork,SYMBOL_ASK)+OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT);
request.type_time=ORDER_TIME_GTC;
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Îòêðûâàåò ïîçèöèþ OpenSELLLIMT |
//+----------------------------------------------------------------------------+
void OpenSELLLIMIT()
{
for(int i=1;i<=GRIDNUMBER;i++)
{
if(OrderLevelStop!=0&&OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderPricePip=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
else OrderPricePip=OrderLevelStop;
request.symbol = symToWork;
request.volume = lotss;
request.action=TRADE_ACTION_PENDING; // îïåðàöèÿ ñ ðûíêà
if(TakeProfit==0)request.tp=0;else request.tp=SymbolInfoDouble(symToWork,SYMBOL_BID)+OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT)-TakeProfit*SymbolInfoDouble(symToWork,SYMBOL_POINT);
if(StopLoss==0)request.sl=0;else request.sl=SymbolInfoDouble(symToWork,SYMBOL_BID)+OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT)+StopLoss*SymbolInfoDouble(symToWork,SYMBOL_POINT);
request.deviation=(ulong)((SymbolInfoDouble(symToWork,SYMBOL_ASK)-SymbolInfoDouble(symToWork,SYMBOL_BID))/SymbolInfoDouble(symToWork,SYMBOL_POINT)); // ïî ñïðåäó
// request.type_filling=ORDER_FILLING_CANCEL;
request.type=ORDER_TYPE_SELL_LIMIT;
request.price=SymbolInfoDouble(symToWork,SYMBOL_BID)+OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT);
request.type_time=ORDER_TIME_GTC;
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
}
//+----------------------------------------------------------------------------+
//| Àâòîð : Âëàäèñëàâ, Expforex http://expforex.at.ua |
//+----------------------------------------------------------------------------+
//| Îïèñàíèå : Îòêðûâàåò ïîçèöèþ OpenBUYLIMIT |
//+----------------------------------------------------------------------------+
void OpenBUYLIMIT()
{
for(int i=1;i<=GRIDNUMBER;i++)
{
if(OrderLevelStop!=0&&OrderLevelStop<SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL))OrderPricePip=(int)SymbolInfoInteger(symToWork,SYMBOL_TRADE_STOPS_LEVEL);
else OrderPricePip=OrderLevelStop;
request.symbol= symToWork;
request.volume= lotss;
request.action=TRADE_ACTION_PENDING; // îïåðàöèÿ ñ ðûíêà
if(TakeProfit==0)request.tp=0;else request.tp=SymbolInfoDouble(symToWork,SYMBOL_ASK)+TakeProfit*SymbolInfoDouble(symToWork,SYMBOL_POINT)-OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT);
if(StopLoss==0)request.sl=0;else request.sl=SymbolInfoDouble(symToWork,SYMBOL_ASK)-StopLoss*SymbolInfoDouble(symToWork,SYMBOL_POINT)-OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT);
request.deviation=(ulong)((SymbolInfoDouble(symToWork,SYMBOL_ASK)-SymbolInfoDouble(symToWork,SYMBOL_BID))/SymbolInfoDouble(symToWork,SYMBOL_POINT)); // ïî ñïðåäó
//request.type_filling=ORDER_FILLING_CANCEL;
request.type=ORDER_TYPE_BUY_LIMIT;
request.price=SymbolInfoDouble(symToWork,SYMBOL_ASK)-OrderPricePip*i*SymbolInfoDouble(symToWork,SYMBOL_POINT);
request.type_time=ORDER_TIME_GTC;
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
}
//+------------------------------------------------------------------+
//| Óäàëèì âñå îòëîæêè: |
//+------------------------------------------------------------------+
void DeleteAllStops()
{
int pos=OrdersTotal(); // ïîëó÷èì êîëè÷åñòâî îòêðûòûõ ïîçèöèé
for(int ip=pos;ip>=0;ip--)
{
DeletePositionStops(ip);
}
}
//+------------------------------------------------------------------+
//| Óäàëèì îòëîæåííûé îðäåð |
//+------------------------------------------------------------------+
void DeletePositionStops(int ip)
{
request.action=TRADE_ACTION_REMOVE; // îïåðàöèÿ ñ ðûíêà
request.order=OrderGetTicket(ip);
if(OrderGetString(ORDER_SYMBOL)!=symToWork)return;
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
//+------------------------------------------------------------------+
// ==========================================================================================================================================================================================================
// ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
//
// Ïàíåëü äëÿ Âêëàäêè Func
//
// ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
// ==========================================================================================================================================================================================================
void VKL_OTHERS(int x=0)
{
int y=10;
//+------------------------------------------------------------------+
//| Áëîê çàêðûòèÿ ïî ïðèáûëè è/èëè óáûòêó |
//+------------------------------------------------------------------+
ObjectCreate(window,"OthersPROF",OBJ_RECTANGLE_LABEL,0,0,0);
ObjectSetInteger(window,"OthersPROF",OBJPROP_XDISTANCE,x+6);
ObjectSetInteger(window,"OthersPROF",OBJPROP_YDISTANCE,y+2);
ObjectSetInteger(window,"OthersPROF",OBJPROP_XSIZE,258);
ObjectSetInteger(window,"OthersPROF",OBJPROP_YSIZE,50);
ObjectSetInteger(window,"OthersPROF",OBJPROP_BORDER_TYPE,1);
ObjectSetInteger(window,"OthersPROF",OBJPROP_BGCOLOR,WhiteSmoke);
ObjectCreate(window,"USEProfit",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"USEProfit",OBJPROP_XDISTANCE,x+10);
ObjectSetInteger(window,"USEProfit",OBJPROP_YDISTANCE,y+5);
ObjectSetInteger(window,"USEProfit",OBJPROP_COLOR,Black);
ObjectSetInteger(window,"USEProfit",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"USEProfit",OBJPROP_XSIZE,250);
ObjectSetInteger(window,"USEProfit",OBJPROP_YSIZE,17);
ObjectSetString(window,"USEProfit",OBJPROP_TEXT,"CLOSE if PROFIT and/or LOSS");
ObjectSetInteger(window,"USEProfit",OBJPROP_FONTSIZE,13);
ObjectSetInteger(window,"USEProfit",OBJPROP_READONLY,true); // èíà÷å íàæàòü íà íåå íåëüçÿ
ButtonCreate("USEProfitCLOSE",Black,Khaki,x+220,y+25,40,20,"USE",10);
//void LabelCreate(string name,color TextColor,int Xdist,int Ydist,string Text,int FONTSIZE=12)
LabelCreate("ZNAK>",Green,x+15,y+25,">");
ObjectCreate(window,"USEProfitCLOSE_EDIT",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"USEProfitCLOSE_EDIT",OBJPROP_XDISTANCE,x+30);
ObjectSetInteger(window,"USEProfitCLOSE_EDIT",OBJPROP_YDISTANCE,y+25);
ObjectSetInteger(window,"USEProfitCLOSE_EDIT",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"USEProfitCLOSE_EDIT",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"USEProfitCLOSE_EDIT",OBJPROP_XSIZE,55);
ObjectSetInteger(window,"USEProfitCLOSE_EDIT",OBJPROP_YSIZE,20);
ObjectSetString(window,"USEProfitCLOSE_EDIT",OBJPROP_TEXT,DoubleToString(Profit,0));
ObjectSetInteger(window,"USEProfitCLOSE_EDIT",OBJPROP_FONTSIZE,13);
ObjectSetInteger(window,"USEProfitCLOSE_EDIT",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
LabelCreate("ZNAK<",Red,x+90,y+25,"<");
ObjectCreate(window,"USELossCLOSE_EDIT",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"USELossCLOSE_EDIT",OBJPROP_XDISTANCE,x+105);
ObjectSetInteger(window,"USELossCLOSE_EDIT",OBJPROP_YDISTANCE,y+25);
ObjectSetInteger(window,"USELossCLOSE_EDIT",OBJPROP_COLOR,Red);
ObjectSetInteger(window,"USELossCLOSE_EDIT",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"USELossCLOSE_EDIT",OBJPROP_XSIZE,55);
ObjectSetInteger(window,"USELossCLOSE_EDIT",OBJPROP_YSIZE,20);
ObjectSetString(window,"USELossCLOSE_EDIT",OBJPROP_TEXT,DoubleToString(Loss,0));
ObjectSetInteger(window,"USELossCLOSE_EDIT",OBJPROP_FONTSIZE,13);
ObjectSetInteger(window,"USELossCLOSE_EDIT",OBJPROP_SELECTABLE,false); // èíà÷å íàæàòü íà íåå íåëüçÿ
ButtonCreate("TypeClose_DOLLAR",Black,MistyRose,x+160,y+25,20,20,"$",10);
ButtonCreate("TypeClose_PERCENT",Black,OldLace,x+180,y+25,20,20,"%",10);
ButtonCreate("TypeClose_POINT",Black,Honeydew,x+200,y+25,20,20,"P",10);
//+------------------------------------------------------------------+
//| Áëîê Custom1 |
//+------------------------------------------------------------------+
ObjectCreate(window,"OthersGRIDER",OBJ_RECTANGLE_LABEL,0,0,0);
ObjectSetInteger(window,"OthersGRIDER",OBJPROP_XDISTANCE,x+6);
ObjectSetInteger(window,"OthersGRIDER",OBJPROP_YDISTANCE,y+59);
ObjectSetInteger(window,"OthersGRIDER",OBJPROP_XSIZE,258);
ObjectSetInteger(window,"OthersGRIDER",OBJPROP_YSIZE,50);
ObjectSetInteger(window,"OthersGRIDER",OBJPROP_BORDER_TYPE,1);
ObjectSetInteger(window,"OthersGRIDER",OBJPROP_BGCOLOR,WhiteSmoke);
ObjectCreate(window,"Custom1",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"Custom1",OBJPROP_XDISTANCE,x+10);
ObjectSetInteger(window,"Custom1",OBJPROP_YDISTANCE,y+62);
ObjectSetInteger(window,"Custom1",OBJPROP_COLOR,Black);
ObjectSetInteger(window,"Custom1",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"Custom1",OBJPROP_XSIZE,250);
ObjectSetInteger(window,"Custom1",OBJPROP_YSIZE,17);
ObjectSetString(window,"Custom1",OBJPROP_TEXT,"FREE CUSTOM BLOCK 1");
ObjectSetInteger(window,"Custom1",OBJPROP_FONTSIZE,13);
ObjectSetInteger(window,"Custom1",OBJPROP_READONLY,true); // èíà÷å íàæàòü íà íåå íåëüçÿ
//+------------------------------------------------------------------+
//| Áëîê Custom2 |
//+------------------------------------------------------------------+
ObjectCreate(window,"OthersGRIDER2",OBJ_RECTANGLE_LABEL,0,0,0);
ObjectSetInteger(window,"OthersGRIDER2",OBJPROP_XDISTANCE,x+6);
ObjectSetInteger(window,"OthersGRIDER2",OBJPROP_YDISTANCE,y+116);
ObjectSetInteger(window,"OthersGRIDER2",OBJPROP_XSIZE,258);
ObjectSetInteger(window,"OthersGRIDER2",OBJPROP_YSIZE,50);
ObjectSetInteger(window,"OthersGRIDER2",OBJPROP_BORDER_TYPE,1);
ObjectSetInteger(window,"OthersGRIDER2",OBJPROP_BGCOLOR,WhiteSmoke);
ObjectCreate(window,"Custom2",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"Custom2",OBJPROP_XDISTANCE,x+10);
ObjectSetInteger(window,"Custom2",OBJPROP_YDISTANCE,y+119);
ObjectSetInteger(window,"Custom2",OBJPROP_COLOR,Black);
ObjectSetInteger(window,"Custom2",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"Custom2",OBJPROP_XSIZE,250);
ObjectSetInteger(window,"Custom2",OBJPROP_YSIZE,17);
ObjectSetString(window,"Custom2",OBJPROP_TEXT,"FREE CUSTOM BLOCK 2");
ObjectSetInteger(window,"Custom2",OBJPROP_FONTSIZE,13);
ObjectSetInteger(window,"Custom2",OBJPROP_READONLY,true); // èíà÷å íàæàòü íà íåå íåëüçÿ
//+------------------------------------------------------------------+
//| Áëîê Custom3 |
//+------------------------------------------------------------------+
ObjectCreate(window,"OthersGRIDER3",OBJ_RECTANGLE_LABEL,0,0,0);
ObjectSetInteger(window,"OthersGRIDER3",OBJPROP_XDISTANCE,x+6);
ObjectSetInteger(window,"OthersGRIDER3",OBJPROP_YDISTANCE,y+173);
ObjectSetInteger(window,"OthersGRIDER3",OBJPROP_XSIZE,258);
ObjectSetInteger(window,"OthersGRIDER3",OBJPROP_YSIZE,50);
ObjectSetInteger(window,"OthersGRIDER3",OBJPROP_BORDER_TYPE,1);
ObjectSetInteger(window,"OthersGRIDER3",OBJPROP_BGCOLOR,WhiteSmoke);
ObjectCreate(window,"Custom3",OBJ_EDIT,0,100,100);
ObjectSetInteger(window,"Custom3",OBJPROP_XDISTANCE,x+10);
ObjectSetInteger(window,"Custom3",OBJPROP_YDISTANCE,y+176);
ObjectSetInteger(window,"Custom3",OBJPROP_COLOR,Black);
ObjectSetInteger(window,"Custom3",OBJPROP_BGCOLOR,White);
ObjectSetInteger(window,"Custom3",OBJPROP_XSIZE,250);
ObjectSetInteger(window,"Custom3",OBJPROP_YSIZE,17);
ObjectSetString(window,"Custom3",OBJPROP_TEXT,"FREE CUSTOM BLOCK 3");
ObjectSetInteger(window,"Custom3",OBJPROP_FONTSIZE,13);
ObjectSetInteger(window,"Custom3",OBJPROP_READONLY,true); // èíà÷å íàæàòü íà íåå íåëüçÿ
}
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
//æææææææææææææææææææ Ôóíêöèè çàêðûòèÿ ïî ïðèáûëè ææææææææææææææææææææææææ
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
double price;
int ordertype;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int startCloseBlock3()
{
double ask,bid,open,Prc2,point,buy_e=0,sell_e=0,Equity=0,_close=0;
int Pips,buy_p=0,sell_p=0,flag=0;
string com,mg;
string sy;
sy=Symbol();
//-------------------------------ñìîòðèì îòêðûòûå----------------------------------------------------------
int pos=PositionsTotal(); // ïîëó÷èì êîëè÷åñòâî îòêðûòûõ ïîçèöèé
if(PositionsTotal()!=0)
{
for(int ip=pos;ip>=0;ip--)
{
int order_type2=(int)PositionGetInteger(POSITION_TYPE);
double order_open_price2=PositionGetDouble(POSITION_PRICE_OPEN);
double profit=PositionGetDouble(POSITION_PROFIT);
if(order_type2==POSITION_TYPE_SELL)
{
point=SymbolInfoDouble(PositionGetString(POSITION_SYMBOL),SYMBOL_POINT);
ask=MathRound(SymbolInfoDouble(PositionGetString(POSITION_SYMBOL),SYMBOL_ASK)/point);
open=MathRound(order_open_price2/point);
sell_e+=profit;
sell_p+=(int)(open-ask);
}
if(order_type2==POSITION_TYPE_BUY)
{
point=SymbolInfoDouble(PositionGetString(POSITION_SYMBOL),SYMBOL_POINT);
bid=MathRound(SymbolInfoDouble(PositionGetString(POSITION_SYMBOL),SYMBOL_ASK)/point);
open=MathRound(order_open_price2/point);
buy_e+=profit;
buy_p+=(int)(bid-open);
}
}
//-----------------------------------ñ÷èòàåì---------------------------------------------------------------
Pips=(buy_p+sell_p);
Equity=(buy_e+sell_e);
Prc2=NormalizeDouble((Equity*100)/AccountInfoDouble(ACCOUNT_BALANCE),2);
//----------------------------------âûáèðàåì---------------------------------------------------------------
switch(TypeofClose)
{
case 1: _close=Equity; com = "äîëëàð"; break;
case 2: _close=Prc2; com = "%áàëàíñ"; break;
case 3: _close=Pips; com = "%ïèïñîâ"; break;
default: com="ÍÅ ÓÊÀÇÀÍÎ"; break;
}
//--------------------Êîììåíòàðèè---------------------------------------------------------------------------
//---------------------------óñëîâèÿ äëÿ çàêðûòèÿ---------------------------------------------------------------------
if(_close>=Profit && Profit!=0){ flag=1; }
if(_close<=Loss && Loss!=0){ flag=1; }
//-----------------------------âñå ïîçèöèè çàêðûâàåì------------------------------------------------------------------
if(flag>0)
{
CLOSEALLIFPROFIT();DELETEALLIFPROFIT();ObjectSetInteger(window,"USEProfitCLOSE",OBJPROP_STATE,false);Print("Close with -CLOSEIFPROFIT- #="+(string)_close);
}
}
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void DELETEALLIFPROFIT()
{
int pos=OrdersTotal(); // ïîëó÷èì êîëè÷åñòâî îòêðûòûõ ïîçèöèé
for(int ip=pos;ip>=0;ip--)
{
request.action=TRADE_ACTION_REMOVE; // îïåðàöèÿ ñ ðûíêà
request.order=OrderGetTicket(ip);
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CLOSEALLIFPROFIT()
{
int pos=PositionsTotal(); // ïîëó÷èì êîëè÷åñòâî îòêðûòûõ ïîçèöèé
for(int ip=pos;ip>=0;ip--)
{
string sSymbol=PositionGetSymbol(ip);
if(PositionSelect(sSymbol)==true)
{
ClosePosition(sSymbol,ip);
}
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void ClosePosition(string sSymbol,int ip)
{
request.symbol = sSymbol;
request.volume = PositionGetDouble( POSITION_VOLUME );
request.action=TRADE_ACTION_DEAL; // îïåðàöèÿ ñ ðûíêà
request.tp=0;
request.sl=0;
request.deviation=(ulong)((SymbolInfoDouble(sSymbol,SYMBOL_ASK)-SymbolInfoDouble(sSymbol,SYMBOL_BID))/SymbolInfoDouble(sSymbol,SYMBOL_POINT)); // ïî ñïðåäó
// request.type_filling=ORDER_FILLING_CANCEL;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
{
request.type=ORDER_TYPE_SELL;
request.price=SymbolInfoDouble(sSymbol,SYMBOL_BID);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
{
request.type=ORDER_TYPE_BUY;
request.price=SymbolInfoDouble(sSymbol,SYMBOL_ASK);
}
OrderSend(request,result);
if(result.retcode==TRADE_RETCODE_DONE)PlaySound("ok.wav"); else PlaySound("stops.wav");
}
//+----------------------------------------------------------------------
//
// ==========================================================================================================================================================================================================
// ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
//
// Ïàíåëü äëÿ Âêëàäêè Ind
//
// ÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆÆ
// ==========================================================================================================================================================================================================
//+------------------------------------------------------------------+
//| Îáúÿâèì ïåðåìåííûå äëÿ õðàíåíèÿ ñèãíàëîâ èíäèêàòîðîâ |
//+------------------------------------------------------------------+
int SignalMA;
int SignalMACD;
int SignalPC;
int SignalACADX;
int SignalST;
int SignalRSI;
int SignalCCI;
int SignalWPR;
int SignalBB;
int SignalSDC;
int SignalPC2;
int SignalENV;
int SignalDC;
int SignalSC;
int SignalGC;
int SignalNRTR;
int SignalAL;
int SignalAMA;
int SignalAO;
int SignalICH;
//+------------------------------------------------------------------+
//| Îáúÿâèì ïåðåìåííûå äëÿ õðàíåíèÿ õýíäëîâ èíäèêàòîðîâ |
//+------------------------------------------------------------------+
int h_ma1 = INVALID_HANDLE;
int h_ma2 = INVALID_HANDLE;
int h_macd = INVALID_HANDLE;
int h_pc = INVALID_HANDLE;
int h_pc2 = INVALID_HANDLE;
int h_acadx = INVALID_HANDLE;
int h_stoh = INVALID_HANDLE;
int h_rsi = INVALID_HANDLE;
int h_cci = INVALID_HANDLE;
int h_wpr = INVALID_HANDLE;
int h_bb = INVALID_HANDLE;
int h_sdc = INVALID_HANDLE;
int h_env = INVALID_HANDLE;
int h_dc = INVALID_HANDLE;
int h_sc = INVALID_HANDLE;
int h_gc = INVALID_HANDLE;
int h_nrtr = INVALID_HANDLE;
int h_al = INVALID_HANDLE;
int h_ama = INVALID_HANDLE;
int h_ao = INVALID_HANDLE;
int h_ich = INVALID_HANDLE;
//+------------------------------------------------------------------+
//| Îáúÿâèì íåîáõîäèìûå ìàññèâû äëÿ õðàíåíèÿ äàííûõ èíäèêàòîðîâ |
//+------------------------------------------------------------------+
double ma1_buffer[];
double ma2_buffer[];
double macd1_buffer[];
double macd2_buffer[];
double pc1_buffer[];
double pc2_buffer[];
double pc1_buffer2[];
double pc2_buffer2[];
double acadx1_buffer[];
double acadx2_buffer[];
double stoh_buffer[];
double rsi_buffer[];
double cci_buffer[];
double wpr_buffer[];
double bb1_buffer[];
double bb2_buffer[];
double sdc1_buffer[];
double sdc2_buffer[];
double env1_buffer[];
double env2_buffer[];
double dc1_buffer[];
double dc2_buffer[];
double sc1_buffer[];
double sc2_buffer[];
double gc1_buffer[];
double gc2_buffer[];
double nrtr1_buffer[];
double nrtr2_buffer[];
double al1_buffer[];
double al2_buffer[];
double al3_buffer[];
double ama_buffer[];
double ao_buffer[];
double ich1_buffer[];
double ich2_buffer[];
double Close[];
//+------------------------------------------------------------------+
//| ôóíêöèè ôîðìèðîâàíèÿ ñèãíàëîâ |
//| 0 - íåò ñèãíàëà |
//| 1 - ñèãíàë íà ïîêóïêó |
//| -1 - ñèãíàë íà ïðîäàæó |
//+------------------------------------------------------------------+
int TradeSignal_01(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
//--- íîëü îçíà÷àåò îòñóòñòâèå ñèãíàëà
int sig=0;
//--- ïðîâåðèì õåíäëû èíäèêàòîðîâ
if(h_ma1==INVALID_HANDLE)//--- åñëè õýíäë íåâàëèäíûé
{
//--- ñîçäàäèì åãî ñíîâà
h_ma1=iMA(symToWork,TFMigrate(TF),periodma1,0,MAmethod,MAprice);
//--- âûõîäèì èç ôóíêöèè
return(0);
}
else //--- åñëè õýíäë âàëèäíûé
{
//--- êîïèðóåì çíà÷åíèÿ èç èíäèêàòîðà â ìàññèâ
if(CopyBuffer(h_ma1,0,0,3,ma1_buffer)<3) //--- è åñëè äàííûõ ìåíüøå òðåáóåìûõ
//--- âûõîäèì èç ôóíêöèè
return(0);
//--- çàäàäèì èíäåêñàöèþ â ìàññèâå êàê òàéìñåðèþ
if(!ArraySetAsSeries(ma1_buffer,true))
//--- â ñëó÷àå îøèáêè èíäåêñàöèè âûõîäèì èç ôóíêöèè
return(0);
}
if(h_ma2==INVALID_HANDLE)//--- åñëè õýíäë íåâàëèäíûé
{
//--- ñîçäàäèì åãî ñíîâà
h_ma2=iMA(symToWork,TFMigrate(TF),periodma2,0,MAmethod,MAprice);
//--- âûõîäèì èç ôóíêöèè
return(0);
}
else //--- åñëè õýíäë âàëèäíûé
{
//--- êîïèðóåì çíà÷åíèÿ èç èíäèêàòîðà â ìàññèâ
if(CopyBuffer(h_ma2,0,0,2,ma2_buffer)<2) //--- è åñëè äàííûõ ìåíüøå òðåáóåìûõ
//--- âûõîäèì èç ôóíêöèè
return(0);
//--- çàäàäèì èíäåêñàöèþ â ìàññèâå êàê òàéìñåðèþ
if(!ArraySetAsSeries(ma1_buffer,true))
//--- â ñëó÷àå îøèáêè èíäåêñàöèè âûõîäèì èç ôóíêöèè
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(ma1_buffer[2]<ma2_buffer[1] && ma1_buffer[1]>ma2_buffer[1])
sig=1;
else if(ma1_buffer[2]>ma2_buffer[1] && ma1_buffer[1]<ma2_buffer[1])
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
int TradeSignal_02(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_macd==INVALID_HANDLE)
{
h_macd=iMACD(symToWork,TFMigrate(TF),FastMACD,SlowMACD,MACDSMA,MACDprice);
return(0);
}
else
{
if(CopyBuffer(h_macd,0,0,2,macd1_buffer)<2)
return(0);
if(CopyBuffer(h_macd,1,0,3,macd2_buffer)<3)
return(0);
if(!ArraySetAsSeries(macd1_buffer,true))
return(0);
if(!ArraySetAsSeries(macd2_buffer,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(macd2_buffer[2]>macd1_buffer[1] && macd2_buffer[1]<macd1_buffer[1])
sig=1;
else if(macd2_buffer[2]<macd1_buffer[1] && macd2_buffer[1]>macd1_buffer[1])
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int TradeSignal_05(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_stoh==INVALID_HANDLE)
{
h_stoh=iStochastic(symToWork,TFMigrate(TF),SOPeriodK,SOPeriodD,SOslowing,SOmethod,SOpricefield);
return(0);
}
else
{
if(CopyBuffer(h_stoh,0,0,3,stoh_buffer)<3)
return(0);
if(!ArraySetAsSeries(stoh_buffer,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(stoh_buffer[2]<20 && stoh_buffer[1]>20)
sig=1;
else if(stoh_buffer[2]>80 && stoh_buffer[1]<80)
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
int TradeSignal_06(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_rsi==INVALID_HANDLE)
{
h_rsi=iRSI(symToWork,TFMigrate(TF),RSIPeriod,RSIprice);
return(0);
}
else
{
if(CopyBuffer(h_rsi,0,0,3,rsi_buffer)<3)
return(0);
if(!ArraySetAsSeries(rsi_buffer,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(rsi_buffer[2]<30 && rsi_buffer[1]>30)
sig=1;
else if(rsi_buffer[2]>70 && rsi_buffer[1]<70)
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
int TradeSignal_07(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_cci==INVALID_HANDLE)
{
h_cci=iCCI(symToWork,TFMigrate(TF),CCIPeriod,CCIprice);
return(0);
}
else
{
if(CopyBuffer(h_cci,0,0,3,cci_buffer)<3)
return(0);
if(!ArraySetAsSeries(cci_buffer,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(cci_buffer[2]<-100 && cci_buffer[1]>-100)
sig=1;
else if(cci_buffer[2]>100 && cci_buffer[1]<100)
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
int TradeSignal_08(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_wpr==INVALID_HANDLE)
{
h_wpr=iWPR(symToWork,TFMigrate(TF),WPRPeriod);
return(0);
}
else
{
if(CopyBuffer(h_wpr,0,0,3,wpr_buffer)<3)
return(0);
if(!ArraySetAsSeries(wpr_buffer,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(wpr_buffer[2]<-80 && wpr_buffer[1]>-80)
sig=1;
else if(wpr_buffer[2]>-20 && wpr_buffer[1]<-20)
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
int TradeSignal_09(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_bb==INVALID_HANDLE)
{
h_bb=iBands(symToWork,TFMigrate(TF),BBPeriod,0,BBdeviation,BBprice);
return(0);
}
else
{
if(CopyBuffer(h_bb,1,0,2,bb1_buffer)<2)
return(0);
if(CopyBuffer(h_bb,2,0,2,bb2_buffer)<2)
return(0);
if(CopyClose(symToWork,TFMigrate(TF),0,3,Close)<3)
return(0);
if(!ArraySetAsSeries(bb1_buffer,true))
return(0);
if(!ArraySetAsSeries(bb2_buffer,true))
return(0);
if(!ArraySetAsSeries(Close,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(Close[2]<=bb2_buffer[1] && Close[1]>bb2_buffer[1])
sig=1;
else if(Close[2]>=bb1_buffer[1] && Close[1]<bb1_buffer[1])
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int TradeSignal_12(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_env==INVALID_HANDLE)
{
h_env=iEnvelopes(symToWork,TFMigrate(TF),ENVPeriod,0,ENVmethod,ENVprice,ENVdeviation);
return(0);
}
else
{
if(CopyBuffer(h_env,0,0,2,env1_buffer)<2)
return(0);
if(CopyBuffer(h_env,1,0,2,env2_buffer)<2)
return(0);
if(CopyClose(symToWork,TFMigrate(TF),0,3,Close)<3)
return(0);
if(!ArraySetAsSeries(env1_buffer,true))
return(0);
if(!ArraySetAsSeries(env2_buffer,true))
return(0);
if(!ArraySetAsSeries(Close,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(Close[2]<=env2_buffer[1] && Close[1]>env2_buffer[1])
sig=1;
else if(Close[2]>=env1_buffer[1] && Close[1]<env1_buffer[1])
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int TradeSignal_17(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_al==INVALID_HANDLE)
{
h_al=iAlligator(symToWork,TFMigrate(TF),ALjawperiod,0,ALteethperiod,0,ALlipsperiod,0,ALmethod,ALprice);
return(0);
}
else
{
if(CopyBuffer(h_al,0,0,2,al1_buffer)<2)
return(0);
if(CopyBuffer(h_al,1,0,2,al2_buffer)<2)
return(0);
if(CopyBuffer(h_al,2,0,2,al3_buffer)<2)
return(0);
if(!ArraySetAsSeries(al1_buffer,true))
return(0);
if(!ArraySetAsSeries(al2_buffer,true))
return(0);
if(!ArraySetAsSeries(al3_buffer,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(al3_buffer[1]>al2_buffer[1] && al2_buffer[1]>al1_buffer[1])
sig=1;
else if(al3_buffer[1]<al2_buffer[1] && al2_buffer[1]<al1_buffer[1])
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
int TradeSignal_18(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_ama==INVALID_HANDLE)
{
h_ama=iAMA(symToWork,TFMigrate(TF),AMAperiod,AMAfastperiod,AMAslowperiod,0,AMAprice);
return(0);
}
else
{
if(CopyBuffer(h_ama,0,0,3,ama_buffer)<3)
return(0);
if(!ArraySetAsSeries(ama_buffer,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(ama_buffer[2]<ama_buffer[1])
sig=1;
else if(ama_buffer[2]>ama_buffer[1])
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
int TradeSignal_19(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_ao==INVALID_HANDLE)
{
h_ao=iAO(symToWork,TFMigrate(TF));
return(0);
}
else
{
if(CopyBuffer(h_ao,1,0,20,ao_buffer)<20)
return(0);
if(!ArraySetAsSeries(ao_buffer,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(ao_buffer[1]==0)
sig=1;
else if(ao_buffer[1]==1)
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
int TradeSignal_20(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
int sig=0;
if(h_ich==INVALID_HANDLE)
{
h_ich=iIchimoku(symToWork,TFMigrate(TF),IKHtenkansen,IKHkijunsen,IKHsenkouspanb);
return(0);
}
else
{
if(CopyBuffer(h_ich,0,0,2,ich1_buffer)<2)
return(0);
if(CopyBuffer(h_ich,1,0,2,ich2_buffer)<2)
return(0);
if(!ArraySetAsSeries(ich1_buffer,true))
return(0);
if(!ArraySetAsSeries(ich2_buffer,true))
return(0);
}
//--- ïðîâîäèì ïðîâåðêó óñëîâèÿ è óñòàíàâëèâàåì çíà÷åíèå äëÿ sig
if(ich1_buffer[1]>ich2_buffer[1])
sig=1;
else if(ich1_buffer[1]<ich2_buffer[1])
sig=-1;
else sig=0;
//--- âîçâðàùàåì òîðãîâûé ñèãíàë
return(sig);
}
//+------------------------------------------------------------------+
void IndCalc(string symToWork3="",int TF=0)
{
if(symToWork3=="")symToWork3=symToWork; if(TF==0)TF=TFToInd;
//--- ñîçäàäèì õýíäëû èíäèêàòîðîâ
h_ma1=iMA(symToWork3,TFMigrate(TF),periodma1,0,MAmethod,MAprice);
h_ma2=iMA(symToWork3,TFMigrate(TF),periodma2,0,MAmethod,MAprice);
h_macd=iMACD(symToWork3,TFMigrate(TF),FastMACD,SlowMACD,MACDSMA,MACDprice);
h_stoh=iStochastic(symToWork3,TFMigrate(TF),SOPeriodK,SOPeriodD,SOslowing,SOmethod,SOpricefield);
h_rsi=iRSI(symToWork3,TFMigrate(TF),RSIPeriod,RSIprice);
h_cci=iCCI(symToWork3,TFMigrate(TF),CCIPeriod,CCIprice);
h_wpr=iWPR(symToWork3,TFMigrate(TF),WPRPeriod);
h_bb=iBands(symToWork3,TFMigrate(TF),BBPeriod,0,BBdeviation,BBprice);
h_env=iEnvelopes(symToWork3,TFMigrate(TF),ENVPeriod,0,ENVmethod,ENVprice,ENVdeviation);
h_al=iAlligator(symToWork3,TFMigrate(TF),ALjawperiod,0,ALteethperiod,0,ALlipsperiod,0,ALmethod,ALprice);
h_ama=iAMA(symToWork3,TFMigrate(TF),AMAperiod,AMAfastperiod,AMAslowperiod,0,AMAprice);
h_ao=iAO(symToWork3,TFMigrate(TF));
h_ich=iIchimoku(symToWork3,TFMigrate(TF),IKHtenkansen,IKHkijunsen,IKHsenkouspanb);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void VKL_IND(int x2=10,string symToWork3="",int TF=0)
{
IndCalc(symToWork3,TF);
ObjectCreate(window,"IndBG",OBJ_RECTANGLE_LABEL,0,0,0);
ObjectSetInteger(window,"IndBG",OBJPROP_XDISTANCE,x2+5);
ObjectSetInteger(window,"IndBG",OBJPROP_YDISTANCE,60);
ObjectSetInteger(window,"IndBG",OBJPROP_XSIZE,240);
ObjectSetInteger(window,"IndBG",OBJPROP_YSIZE,190);
ObjectSetInteger(window,"IndBG",OBJPROP_BORDER_TYPE,1);
ObjectSetInteger(window,"IndBG",OBJPROP_BGCOLOR,WhiteSmoke);
ObjectCreate(window,"IndBG2",OBJ_RECTANGLE_LABEL,0,0,0);
ObjectSetInteger(window,"IndBG2",OBJPROP_XDISTANCE,x2+5);
ObjectSetInteger(window,"IndBG2",OBJPROP_YDISTANCE,45);
ObjectSetInteger(window,"IndBG2",OBJPROP_XSIZE,240);
ObjectSetInteger(window,"IndBG2",OBJPROP_YSIZE,25);
ObjectSetInteger(window,"IndBG2",OBJPROP_BORDER_TYPE,2);
ObjectSetInteger(window,"IndBG2",OBJPROP_BGCOLOR,OldLace);
LabelCreate("M1_IND",Black,x2+10,50,"M1",10);
LabelCreate("M5_IND",Black,x2+35,50,"M5",10);
LabelCreate("M15_IND",Black,x2+60,50,"M15",10);
LabelCreate("M30_IND",Black,x2+90,50,"M30",10);
LabelCreate("H1_IND",Black,x2+120,50,"H1",10);
LabelCreate("H4_IND",Black,x2+145,50,"H4",10);
LabelCreate("D1_IND",Black,x2+170,50,"D1",10);
LabelCreate("W1_IND",Black,x2+195,50,"W1",10);
LabelCreate("MN_IND",Black,x2+220,50,"MN",10);
//---ïðèñâàåâàåì ïåðåìåííîé çíà÷åíèå ñèãíàëà
SignalMA = TradeSignal_01(symToWork3,TF);
SignalMACD = TradeSignal_02(symToWork3,TF);
SignalST = TradeSignal_05(symToWork3,TF);
SignalRSI = TradeSignal_06(symToWork3,TF);
SignalCCI = TradeSignal_07(symToWork3,TF);
SignalWPR = TradeSignal_08(symToWork3,TF);
SignalBB = TradeSignal_09(symToWork3,TF);
SignalENV = TradeSignal_12(symToWork3,TF);
SignalAL = TradeSignal_17(symToWork3,TF);
SignalAMA = TradeSignal_18(symToWork3,TF);
SignalAO = TradeSignal_19(symToWork3,TF);
SignalICH = TradeSignal_20(symToWork3,TF);
//--- ðèñóåì ãðàôè÷åñêèå îáúåêòû íà ãðàôèêå â âåðõíåì ëåâîì óãëó
int size=((int)14);
int i=0;
int x=x2;
int y=55;
int fz=size-2;
y+=size;
SetLabel("arrow"+(string)i,arrow(SignalMA),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalMA));
x+=size;
SetLabel("label"+(string)i,"Moving Average",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalMACD),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalMACD));
x+=size;
SetLabel("label"+(string)i,"MACD",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalST),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalST));
x+=size;
SetLabel("label"+(string)i,"Stochastic Oscillator",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalRSI),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalRSI));
x+=size;
SetLabel("label"+(string)i,"RSI",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalCCI),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalCCI));
x+=size;
SetLabel("label"+(string)i,"CCI",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalWPR),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalWPR));
x+=size;
SetLabel("label"+(string)i,"WPR",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalBB),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalBB));
x+=size;
SetLabel("label"+(string)i,"Bollinger Bands",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalENV),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalENV));
x+=size;
SetLabel("label"+(string)i,"Envelopes",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalAL),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalAL));
x+=size;
SetLabel("label"+(string)i,"Alligator",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalAMA),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalAMA));
x+=size;
SetLabel("label"+(string)i,"AMA",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalAO),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalAO));
x+=size;
SetLabel("label"+(string)i,"Awesome oscillator",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
i++;y+=size;x=10;
SetLabel("arrow"+(string)i,arrow(SignalICH),CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y+4,"Wingdings",fz-2,0,Colorarrow(SignalICH));
x+=size;
SetLabel("label"+(string)i,"Ichimoku Kinko Hyo",CORNER_RIGHT_UPPER,ANCHOR_RIGHT_UPPER,x2+x,y,"Arial",fz,0,BlueViolet);
}
//+---------------------------------------------------------------------------------------------------+
//| Ôóíêöèÿ äëÿ ñîçäàíèÿ òåêñòîâîãî îáúåêòà Label |
//| Ïàðàìåòðû: |
//| nm - íàèìåíîâàíèå îáúåêòà |
//| tx - òåêñò |
//| cn - óãîë ãðàôèêà äëÿ ïðèâÿçêè ãðàôè÷åñêîãî îáúåêòà |
//| CORNER_LEFT_UPPER - Öåíòð êîîðäèíàò â ëåâîì âåðõíåì óãëó ãðàôèêà |
//| CORNER_LEFT_LOWER - Öåíòð êîîðäèíàò â ëåâîì íèæíåì óãëó ãðàôèêà |
//| CORNER_RIGHT_LOWER - Öåíòð êîîðäèíàò â ïðàâîì íèæíåì óãëó ãðàôèêà |
//| CORNER_RIGHT_UPPER - Öåíòð êîîðäèíàò â ïðàâîì âåðõíåì óãëó ãðàôèêà |
//| cr - ïîëîæåíèå òî÷êè ïðèâÿçêè ãðàôè÷åñêîãî îáúåêòà |
//| ANCHOR_LEFT_UPPER - Òî÷êà ïðèâÿçêè â ëåâîì âåðõíåì óãëó |
//| ANCHOR_LEFT - Òî÷êà ïðèâÿçêè ñëåâà ïî öåíòðó |
//| ANCHOR_LEFT_LOWER - Òî÷êà ïðèâÿçêè â ëåâîì íèæíåì óãëó |
//| ANCHOR_LOWER - Òî÷êà ïðèâÿçêè ñíèçó ïî öåíòðó |
//| ANCHOR_RIGHT_LOWER - Òî÷êà ïðèâÿçêè â ïðàâîì íèæíåì óãëó |
//| ANCHOR_RIGHT - Òî÷êà ïðèâÿçêè ñïðàâà ïî öåíòðó |
//| ANCHOR_RIGHT_UPPER - Òî÷êà ïðèâÿçêè â ïðàâîì âåðõíåì óãëó |
//| ANCHOR_UPPER - Òî÷êà ïðèâÿçêè ñâåðõó ïî öåíòðó |
//| ANCHOR_CENTER - Òî÷êà ïðèâÿçêè ñòðîãî ïî öåíòðó îáúåêòà |
//| xd - êîîðäèíàòà X â ïèêñåëàõ |
//| yd - êîîðäèíàòà Y â ïèêñåëàõ |
//| fn - íàèìåíîâàíèå øðèôòà |
//| fs - ðàçìåð øðèôòà â ïèêñåëàõ |
//| yg - óãîë íàêëîíà òåêñòà â ãðàäóñàõ. ñî çíàêîì ìèíóñ ïî ÷àñîâîé, ñî çíàêîì ïëþñ ïðîòèâ ÷àñîâîé |
//| ct - öâåò òåêñòà |
//+---------------------------------------------------------------------------------------------------+
void SetLabel(string nm,string tx,ENUM_BASE_CORNER cn,ENUM_ANCHOR_POINT cr,int xd,int yd,string fn,int fs,double yg,color ct)export
{
if(fs<1)fs=1;
cn=CORNER_LEFT_UPPER;
cr=ANCHOR_LEFT_UPPER;
if(ObjectFind(0,nm)<0)ObjectCreate(0,nm,OBJ_LABEL,0,0,0); //--- ñîçäàäèì îáúåêò Label
ObjectSetString (0,nm,OBJPROP_TEXT,tx); //--- óñòàíîâèì òåêñò äëÿ îáúåêòà Label
ObjectSetInteger(0,nm,OBJPROP_CORNER,cn); //--- óñòàíîâèì ïðèâÿçêó ê óãëó ãðàôèêà
ObjectSetInteger(0,nm,OBJPROP_ANCHOR,cr); //--- óñòàíîâèì ïîëîæåíèå òî÷êè ïðèâÿçêè ãðàôè÷åñêîãî îáúåêòà
ObjectSetInteger(0,nm,OBJPROP_XDISTANCE,xd); //--- óñòàíîâèì êîîðäèíàòó X
ObjectSetInteger(0,nm,OBJPROP_YDISTANCE,yd); //--- óñòàíîâèì êîîðäèíàòó Y
ObjectSetString (0,nm,OBJPROP_FONT,fn); //--- óñòàíîâèì øðèôò íàäïèñè
ObjectSetInteger(0,nm,OBJPROP_FONTSIZE,fs); //--- óñòàíîâèì ðàçìåð øðèôòà
ObjectSetDouble (0,nm,OBJPROP_ANGLE,yg); //--- óñòàíîâèì óãîë íàêëîíà
ObjectSetInteger(0,nm,OBJPROP_COLOR,ct); //--- çàäàäèì öâåò òåêñòà
ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,false); //--- çàïðåòèì âûäåëåíèå îáúåêòà ìûøêîé
}
//+------------------------------------------------------------------+
//| ôóíêöèÿ äëÿ îïðåäåëåíèÿ òèïà ñòðåëêè ïî êîäó øðèôòà Wingdings |
//+------------------------------------------------------------------+
string arrow(int sig)export
{
switch(sig)
{
case 0: return(CharToString(251));
case 1: return(CharToString(233));
case -1: return(CharToString(234));
}
return((string)0);
}
//+------------------------------------------------------------------+
//| ôóíêöèÿ äëÿ îïðåäåëåíèÿ öâåòà ñòðåëêè |
//+------------------------------------------------------------------+
color Colorarrow(int sig)export
{
switch(sig)
{
case -1: return(Red);
case 0: return(MediumAquamarine);
case 1: return(Blue);
}
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---