[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 65
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я сделаю по своему и отсчет будет другой. Всегда делаю из прошлого в настоящее. Хотя это дело вкуса. На самом деле при правильном подходе это не имеет значения
Здраствуйте,
Помогите пожалуйста со стрлочкоми. (пост 56, 58 стр.)
Наверное, слишком быстро накидали, а надо было поучиться немного. :-)
Тогда бы узнали, что покупаем по аску, а продаем по биду. И при продаже тэйки должны быть ниже цены покупки.
Да нет,все как раз строго наоборот,чем ви написали.Конечно,спасибо за внимание.Я крепко подумал,прикинул так и так,и вот,ви ошибаетесь.
Вообще,я вижу,проблема не в асках и бидах,и я ее еще не решил.Для всех напомню,чего спрашивал
Извините,я тоже со своим.Вот,бистро ляпнул код,а он не работает
//+------------------------------------------------------------------+
//| ордер типе.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
double New_Time=0,razniza, r;int i=0,h=0,q=0,w=0,s=0,g=0;
int start()
{int M,Y;
//----
double ticket,Lots=0.2,fractal_u=Ask,TakeProfit=50,Points = MarketInfo (Symbol(), MODE_POINT);
//----
if (i<10)
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points,
"открываем позу",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); i++; }
Alert ("OrderTypeOP_BUYSTOP", OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket, Lots, Bid, 5, 0 );
if (h<10)
{
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"открываем позу",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); h++; }
Alert ("OrderTypeOP_SELLSTOP", OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket, Lots, Ask, 5, 0 );
if (q<10)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Bid,3,0,fractal_u+5*Points+TakeProfit*Points,
"открываем позу",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); q++; }
Alert ("OrderTypeOP_BUY", OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket, Lots, Bid, 5, 0 );
if (w<10)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,fractal_u+5*Points+TakeProfit*Points,
"открываем позу",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); w++; }
Alert ("OrderTypeOP_SELL", OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket, Lots, Ask, 5, 0 );
if (s<10)
{
ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"открываем позу",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); s++; }
Alert ("OrderTypeOP_BUYLIMIT", OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket, Lots, Ask, 5, 0 );
if (g<10)
{
ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points,
"открываем позу",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); g++; }
Alert ("OrderTypeOP_SELLLIMIT", OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket, Lots, Bid, 5, 0 );
//----
return(0);
}
//+------------------------------------------------------------------+
Я его довольно бистро накидал С ЦЕЛЬЮ получить числовие значения функции Ордер типе, он откривает и закривает по задумке все ордера подряд,то-есть всех видов,я также попробовал использовать OrderSelect, короче он не работает,дает ряди нолей и ошибок 4063. Я OrderClose сверил с инструкцией,параметри прописани вроде разумно,правильно и на своих местах.Какого ж рожна ему еще надо?????
Alert("Текущая время день", iTime(NULL,PERIOD_D1,5));
вот это выдает мне 0, добавил:
Alert("",GetLastError());
пишет ошибку 4054
что я не так делаю?
Прошу помочь. Код должен удалять все рыночные ордера по всем парам, а на практике удаляет лишь те, на окно которых брошен советник. Помогите, пожалуйста, найти ошибку.
void CloseAll_b(int Prosk){
string SMB=Symbol();
for (int i=OrdersTotal()-1;i>=0;i--){
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
Alert("Ошибка ", GetLastError(), " при выборе ордера номер ",OrderTicket()," по паре ",Symbol());
}
else{
if(OrderSymbol()!=Symbol()){continue;}
RefreshRates();
if(OrderType()==OP_BUY){
if(!OrderClose(OrderTicket(),OrderLots(),Bid,Prosk,CLR_NONE)){
Alert("Ошибка ", GetLastError(), " при закрытии Buy-ордера номер ",OrderTicket()," по паре ",Symbol());
}
}
if(OrderType()==OP_SELL){
if(!OrderClose(OrderTicket(),OrderLots(),Ask,Prosk,CLR_NONE)){
Alert("Ошибка ", GetLastError(), " при закрытии Sell-ордера номер ",OrderTicket()," по паре ",Symbol());
} } } } }
Заранее благодарю.
Прошу помочь. Код должен удалять все рыночные ордера по всем парам, а на практике удаляет лишь те, на окно которых брошен советник. Помогите, пожалуйста, найти ошибку.
но вы же сами поставили ограничение :))
if(OrderSymbol()!=Symbol()){continue;}
но вы же сами поставили ограничение :))
if(OrderSymbol()!=Symbol()){continue;}
Согласен - дурак :)) А как надо?
Согласен - дурак :)) А как надо?
Убрал, но ордера по др. парам всё равно не закрываются. Стала выскакивать ошибка 129 (неправильная цена)
верно выскакивает.
вам надо Bid и Ask брать из функции MarketInfo
типа - ask= MarketInfo(OrderSymbol(), MODE_ASK);
и нормализовать не забывайте
ask=NormalizeDouble(ask, MarketInfo(OrderSymbol(), MODE_DIGITS));