Скачать MetaTrader 5

РАЗРАБОТЧИКАМ и НЕ ТОЛЬКО!! ФУНКЦИЯ OrderSend

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114282
Forex Trader  

Хочу открывать ордера на других валютных парах, нежели чем пара на которой загружен советник.........................

Бьюсь уже несколько дней.........с ума чуть не сошел!! Вроде все просто! А не открывает позы на демке!

Функция :

OrderSend("GBPUSD",OP_BUY, 1, iClose("GBPUSD",60,0), 5, 0, 0, "111", 100222, 0, CLR_NONE);

Советник загружен на EURUSD. При компиляции ошибок нет. Тестирую только одну функцию...

Если загрузить на GBPUSD - то открывает.

БИЛД-218, работа на демо счете, пробовал на МТ многих брокерах - таже картина.

Может подскажите - в чем дело?

Forex Trader
114282
Forex Trader  
Проанализируйте возвращаемую ошибку после попытки открытия ордера. Получить код ошибки можно функцией GetLastError().
Forex Trader
114282
Forex Trader  

В ТОМ-ТО И ДЕЛО !!

ОШИБОК НИКАКИХ НЕТ!

текст СУПЕР советника : )

//+------------------------------------------------------------------+
//| 444.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
/////int init()
//// {
//----

//----
//// return(0);
//// }
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
////int deinit()
//// {
//----

//----
//// return(0);
//// }
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
OrderSend("GBPUSD",OP_BUY, 1, iClose("GBPUSD",60,0), 5, 0, 0, "111", 100222, 0, CLR_NONE);
//----
return(0);
}
//+------------------------------------------------------------------+

Forex Trader
114282
Forex Trader  

Если указать так:

OrderSend(Symbol(),OP_BUY, 1, Ask, 5, 0, 0, "111", 100222, 0, CLR_NONE);

- открывает ордер по текущей паре

если так: OrderSend("GBPUSD",OP_BUY, 1, iClose("GBPUSD",60,0), 5, 0, 0, "111", 100222, 0, CLR_NONE);

или так : OrderSend("GBPUSD",OP_BUY, 1, Ask, 5, 0, 0, "111", 100222, 0, CLR_NONE);
- ошибок нет, как и открытых ордеров тоже.

Помогите пож-та разобраться!!!!!!!!

....... (советник наложен на EURUSD)

Forex Trader
114282
Forex Trader  
iClose это значение цены по Биду, а ордера на покупку открываются по Аску. Используй MarketInfo.
Forex Trader
114282
Forex Trader  

Кому еще интересно:

Если указывать функцию так на продажу : OrderSend("GBPUSD",OP_SELL, 1, iClose("GBPUSD",60,0), 5, 0, 0, "444", 100222, 0, CLR_NONE); - РАБОТАЕТ,а с MarketInfo НЕ РАБОТАЕТ!!!!

Для покупки - ни с MarketInfo, ни с iClose - НЕ РАБОТАЕТ!!!!!!!

Forex Trader
114282
Forex Trader  
Tsyrus :

Кому еще интересно:

Если указывать функцию так на продажу : OrderSend("GBPUSD",OP_SELL, 1, iClose("GBPUSD",60,0), 5, 0, 0, "444", 100222, 0, CLR_NONE); - РАБОТАЕТ,а с MarketInfo НЕ РАБОТАЕТ!!!!

Для покупки - ни с MarketInfo, ни с iClose - НЕ РАБОТАЕТ!!!!!!!

Ну вот, у всех работает, а у тебя нет.:-)

Forex Trader
114282
Forex Trader  
Roger :
Tsyrus :

Кому еще интересно:

Если указывать функцию так на продажу : OrderSend("GBPUSD",OP_SELL, 1, iClose("GBPUSD",60,0), 5, 0, 0, "444", 100222, 0, CLR_NONE); - РАБОТАЕТ,а с MarketInfo НЕ РАБОТАЕТ!!!!

Для покупки - ни с MarketInfo, ни с iClose - НЕ РАБОТАЕТ!!!!!!!

Ну вот, у всех работает, а у тебя нет.:-)

Если уж быть точным до конца ТО:

BUY работает только с MarketInfo (например- MarketInfo("EURJPY",MODE_ASK) )

а SELL только с iClose (например- iClose("EURJPY",60,0) ) !!!!!!!

и думаю шо и у ВСЕХ также работает!!

Forex Trader
114282
Forex Trader  
Tsyrus :

Хочу открывать ордера на других валютных парах, нежели чем пара на которой загружен советник.........................

OrderSend("GBPUSD",OP_BUY, 1, iClose("GBPUSD",60,0), 5, 0, 0, "111", 100222, 0, CLR_NONE);

Советник загружен на EURUSD. При компиляции ошибок нет.Тестирую только одну функцию...

Если загрузить на GBPUSD - то открывает.

БИЛД-218, работа на демо счете, пробовал на МТ многих брокерах - таже картина.

Может подскажите - в чем дело?

Имеется ввиду, что прогоняешь в тестере? Тогда правильно, не будет работать, тестер - одновалютный. А так, у меня один советник открывает ордера на всех валютах и ДО СИХ ПОР РАБОТАЕТ!!!!

Forex Trader
114282
Forex Trader  
Roger :
Tsyrus :

Хочу открывать ордера на других валютных парах, нежели чем пара на которой загружен советник.........................

OrderSend("GBPUSD",OP_BUY, 1, iClose("GBPUSD",60,0), 5, 0, 0, "111", 100222, 0, CLR_NONE);

Советник загружен на EURUSD. При компиляции ошибок нет.Тестирую только одну функцию...

Если загрузить на GBPUSD - то открывает.

БИЛД-218, работа на демо счете, пробовал на МТ многих брокерах - таже картина.

Может подскажите - в чем дело?

Имеется ввиду, что прогоняешь в тестере? Тогда правильно, не будет работать, тестер - одновалютный. А так, у меня один советник открывает ордера на всех валютах и ДО СИХ ПОР РАБОТАЕТ!!!!

У меня советник мультивалютный, но открыт на Еве. А ордера не открывает на демке, о тестере и речи НЕТ!!

Да просто накиньте выше указанный советник(для теста с одной функцией) и проверьте!

На SELL работает только с iClose : OrderSend("GBPUSD",OP_SELL, 1, iClose("GBPUSD",60,0), 5, 0, 0, "111", 100222, 0, CLR_NONE);
На BUY работатет только с MarketInfo : OrderSend("GBPUSD",OP_BUY, 1, MarketInfo ("GBPUSD",MODE_ASK), 5, 0, 0, "111", 100222, 0, CLR_NONE);

Я к чему пишу ? ПРОСТО неудобно, довели бы бы до УМА данную функцию.

Forex Trader
114282
Forex Trader  
Tsyrus :

Я к чему пишу ? ПРОСТО неудобно, довели бы бы до УМА данную функцию.

До чьего УМА? Поставь эти функции и сам проверь:

OrderSend("GBPUSD",OP_BUY, 1, MarketInfo ("GBPUSD",MODE_ASK), 5, 0, 0, "111", 100222, 0, CLR_NONE); 
OrderSend("GBPUSD",OP_SELL, 1, MarketInfo ("GBPUSD",MODE_BID), 5, 0, 0, "111", 100222, 0, CLR_NONE); 
Что за идиотская привычка винить в своей тупости всех остальных :-(
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий