Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
вот моя функция для мt4 ecn, ndd, stp ...
За год ни одной ошибки
//+----------------------------------------------------------------------------+
//| Функция открытия ордера (BeerGod) |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" - текущий символ) |
//| op - операция |
//| ll - лот |
//| sl - уровень стоп |
//| tp - уровень тейк |
//| mn - MagicNumber |
//+----------------------------------------------------------------------------+
bool OpenPosition(string sy, int op, double ll, double sl=0, double tp=0, int MagicNumber=0)
{
double MinLl = MarketInfo(Symbol(),MODE_MINLOT);
double MaxLl = MarketInfo(Symbol(),MODE_MAXLOT);
ll = NormalizeDouble(ll,2);
if (ll < MinLl) ll = MinLl; else ll = ll;
if (ll > MaxLl) ll = MaxLl; else ll = ll;
if (op == 0) // Открытие BUY
{
// Проверяем доступность свободных средств
if((AccountFreeMarginCheck(sy,OP_BUY,ll)<=0) || (GetLastError()==134))
{
Print(sy," ",ll," It is impossible to open the order Buy, not enough money.");
return(0);
}
RefreshRates();
// Открываем ордер
int ticketbuy = OrderSend(sy,OP_BUY,ll,MarketInfo(sy,MODE_ASK),Slippage,0,0,Comments,MagicNumber,0,BuyColor);
if(ticketbuy<0)
Print(sy," OpenPosition. OrderSend Buy fail #",GetLastError());
else
Print(sy," OpenPosition. OrderSend Buy successfully");
// Sleep (Pause);
// Модифицируем ордер (выставляем тейкпрофит и стоплосс)
if (sl !=0 || tp !=0)
{
//--- Вычисленные значения цен SL и TP должны быть нормализованы
double BSLoss = NormalizeDouble(MarketInfo(sy,MODE_ASK)-sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
double BTProfit = NormalizeDouble(MarketInfo(sy,MODE_ASK)+tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
//--- Если входящие значения ноль то заменяем цену модификации на ноль
if (sl == 0) BSLoss = 0;
if (tp == 0) BTProfit = 0;
bool resbuy = OrderModify (ticketbuy,OrderOpenPrice(),BSLoss,BTProfit,0,StopColor);
if(!resbuy)
Print(sy," OpenPosition. OrderModify Buy fail #",GetLastError());
else
Print(sy," OpenPosition. OrderModify Buy successfully");
}
}
if (op == 1) // Открытие Sell
{
// Проверяем доступность свободных средств
if((AccountFreeMarginCheck(sy,OP_SELL,ll)<=0) || (GetLastError()==134))
{
Print(sy," ",ll," It is impossible to open the order Sell, not enough money.");
return(0);
}
RefreshRates();
// Открываем ордер
int ticketsell = OrderSend(sy,OP_SELL,ll,MarketInfo(sy,MODE_BID),Slippage,0,0,Comments,MagicNumber,0,SellColor);
if(ticketsell<0)
Print(sy," OpenPosition. OrderSend Sell fail #",GetLastError());
else
Print(sy," OpenPosition. OrderSend Sell successfully");
// Sleep (Pause);
// Модифицируем ордер (выставляем тейкпрофит и стоплосс)
if (sl !=0 || tp !=0)
{
//--- Вычисленные значения цен SL и TP должны быть нормализованы
double SSLoss = NormalizeDouble(MarketInfo(sy,MODE_BID)+sl*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
double STProfit = NormalizeDouble(MarketInfo(sy,MODE_BID)-tp*MarketInfo(sy,MODE_POINT),(int)MarketInfo(sy,MODE_DIGITS));
//--- Если входящие значения ноль то заменяем цену модификации на ноль
if (sl == 0) SSLoss = 0;
if (tp == 0) STProfit = 0;
bool ressell = OrderModify (ticketsell,OrderOpenPrice(),SSLoss,STProfit,0,StopColor);
if(!ressell)
Print(sy," OpenPosition. OrderModify Sell fail #",GetLastError());
else
Print(sy," OpenPosition. OrderModify Sell successfully");
}
}
return (True);
}
//End
P.S. Модераторы, код через кнопку не вставляется.
Даю бесплатно (безвозмездно) онлайн уроки по Skype по вставке кода :)
Даю бесплатно (безвозмездно) онлайн уроки по Skype по вставке кода :)
Даю бесплатно (безвозмездно) онлайн уроки по Skype по вставке кода :)
Благодарю!
готово, если будут вопросы по коду пиши, можно так же в личку или на скайп
готово, если будут вопросы по коду пиши, можно так же в личку или на скайп
Выходит Алерт с сообщением: Нет цен. Ждем новый тик...
а ну раз нет цен то и сделка открыта не может быть. у меня на демо счете отработало нормально, с первой попытки открылась сделка. Нужно больше подробностей