[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 65

 
Vinin:

Я сделаю по своему и отсчет будет другой. Всегда делаю из прошлого в настоящее. Хотя это дело вкуса. На самом деле при правильном подходе это не имеет значения

Здраствуйте,

Помогите пожалуйста со стрлочкоми. (пост 56, 58 стр.)

 
Roger:


Наверное, слишком быстро накидали, а надо было поучиться немного. :-)

Тогда бы узнали, что покупаем по аску, а продаем по биду. И при продаже тэйки должны быть ниже цены покупки.


Да нет,все как раз строго наоборот,чем ви написали.Конечно,спасибо за внимание.Я крепко подумал,прикинул так и так,и вот,ви ошибаетесь.

Вообще,я вижу,проблема не в асках и бидах,и я ее еще не решил.Для всех напомню,чего спрашивал

 
Dimka-novitsek:

Извините,я тоже со своим.Вот,бистро ляпнул код,а он не работает

//+------------------------------------------------------------------+
//| ордер типе.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

ERR_INCORRECT_SERIESARRAY_USING4054Неправильное использование массива-таймсерии

что я не так делаю?


 

Прошу помочь. Код должен удалять все рыночные ордера по всем парам, а на практике удаляет лишь те, на окно которых брошен советник. Помогите, пожалуйста, найти ошибку.


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());
} } } } }

Заранее благодарю.

 
nemo811:

Прошу помочь. Код должен удалять все рыночные ордера по всем парам, а на практике удаляет лишь те, на окно которых брошен советник. Помогите, пожалуйста, найти ошибку.


но вы же сами поставили ограничение :))

if(OrderSymbol()!=Symbol()){continue;}

 
sergeev:

но вы же сами поставили ограничение :))

if(OrderSymbol()!=Symbol()){continue;}


Согласен - дурак :)) А как надо?
 
nemo811:

Согласен - дурак :)) А как надо?
... его просто убрать надо. вы же не хотите отсеивать валюты . Значит надо убрать это условие.
 
Убрал, но ордера по др. парам всё равно не закрываются. Стала выскакивать ошибка 129 (неправильная цена)
 
nemo811:
Убрал, но ордера по др. парам всё равно не закрываются. Стала выскакивать ошибка 129 (неправильная цена)

верно выскакивает.

вам надо Bid и Ask брать из функции MarketInfo

типа - ask= MarketInfo(OrderSymbol(), MODE_ASK);

и нормализовать не забывайте
ask=NormalizeDouble(ask, MarketInfo(OrderSymbol(), MODE_DIGITS));

Причина обращения: