//+------------------------------------------------------------------+
//| live-limit-ctrlA.mq4 |
//| Copyright © 2009, Borys Chekmasov |
//| http://uatrader.blogspot.com |
//| version 2.3 |
//+------------------------------------------------------------------+
//| Ñêðèïò ïðåäíàçíà÷åí äëÿ êîìôîðòíîé ïèïñîâêè ëèìèòíèêàìè íà æèâîì |
//| ãðàôèêå. Ñîçäàéòå íà ãðàôèêå ëèíèþ ñ èìåíåì "GO!". Ïåðåòàùèòå åå |
//| íà óðîâåíü, ñ êîòîðîãî ïëàíèðóåòñÿ îñóùåñòâëÿòü âõîä.|
//| Äëÿ àêòèâàöèè îðäåðà íàæìèòå ãîðÿ÷óþ êëàâèøó àêòèâàöèè ñêðèïòà |
//| àêòèâèðóåòñÿ îðäåð ñ âûñòàâëåííûì ðèñêîì (MoneyRisk, â äîëëàðàõ) |
//| è ñîîòíîøåíèåì ïðîôèò ê ñòîïó (ProfitLoss) èç ïàðàìåòðîâ ñêðèïòà.|
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Borys Chekmasov"
#property link "http://uatrader.blogspot.com"
double Lots = 0.1; //ðàçìåð ëîòà
double MoneyRisk = 30; //ðèñê íà ñäåëêó (â äîëëàðàõ)
double ProfitLoss=3;//îòíîøåíèå ðàçìåðà ïðîôèòà ê ðàçìåðó ëîññà
double open_level, stop_level, profit_level;
double symbol_mode, symbol_tik_sise,symbol_tikk_value,symbol_lotsize,leverage_lev ;
double delta_stop;
int start()
{
//----
symbol_mode = MarketInfo (Symbol(),MODE_PROFITCALCMODE);
symbol_tik_sise = MarketInfo (Symbol(),MODE_TICKSIZE);
symbol_tikk_value = MarketInfo (Symbol(),MODE_TICKVALUE);
symbol_lotsize = MarketInfo (Symbol(),MODE_LOTSIZE);
leverage_lev = AccountLeverage();
// Âû÷èñëÿåì ñòîï
switch (symbol_mode)
{
case 0: // Forex, â ñëó÷àå êðîññîâ íå çàáûâàåì âêëþ÷àòü â îáçîðå ðûíêà îñíîâíûå ïàðû
if (StringSubstr(Symbol(), 3, 3)=="USD") delta_stop = MoneyRisk/(Lots*symbol_lotsize);
if (StringSubstr(Symbol(), 0, 3)=="USD") delta_stop =(Bid*MoneyRisk)/(Lots*symbol_lotsize);
if (StringFind(Symbol(), "USD", 0) == -1) // êðîñêóðñû
{
if (MarketInfo("USD"+StringSubstr(Symbol(), 3, 3),MODE_BID)>0) delta_stop = (MarketInfo("USD"+StringSubstr(Symbol(), 3, 3),MODE_BID)*MoneyRisk)/(Lots*symbol_lotsize);
if (MarketInfo(StringSubstr(Symbol(), 0, 3)+"USD",MODE_BID)>0) delta_stop = MoneyRisk/(Lots*symbol_lotsize*MarketInfo(StringSubstr(Symbol(), 0, 3)+"USD",MODE_BID));
}
break;
case 1: //CFD ñòîêè, êîìèññèè íå ó÷èòûâàþòñÿ!!
delta_stop = MoneyRisk/(Lots*symbol_lotsize);
break;
default: // ôüþ÷è, êîìèññèè íå ó÷èòûâàþòñÿ!!
delta_stop = (MoneyRisk*symbol_tik_sise)/(Lots*symbol_tikk_value);
break;
}
if (ObjectFind("GO!")>0)
{
//âûñòàâëÿåì îòëîæêó:
open_level = ObjectGet("GO!", OBJPROP_PRICE1);
if (open_level>Bid) OrderSend(Symbol(),OP_SELLLIMIT,Lots,open_level,0,(open_level+delta_stop),(open_level-(delta_stop*ProfitLoss)),"",777,0,Red);
if (open_level<Bid) OrderSend(Symbol(),OP_BUYLIMIT,Lots,open_level,0,(open_level-delta_stop),(open_level+(delta_stop*ProfitLoss)),"",777,0,Red);
}
//----
return(0);
}
//+------------------------------------------------------------------+
Comments