Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 679
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пишу робота, подключаю Ctrade, для начала хочу заложить логику по которой он в начале каждого часа будет заключать сделку Buy по рыночной цене, через пол часа будет все продавать (Sell) по новой рыночной цене. Тестирую в тестере - вылетает ошибка Invalid order type.
Инструмент SBER, клиент - Открытие. В ручном режиме сделки проходят, на реальном и демо-счете не пробоавл.
В чем может быть ошибка? Правда ли, что на фондовом рынке нельзя заключать сделки по рыночной цене?
Пишу робота, подключаю Ctrade, для начала хочу заложить логику по которой он в начале каждого часа будет заключать сделку Buy по рыночной цене, через пол часа будет все продавать (Sell) по новой рыночной цене. Тестирую в тестере - вылетает ошибка Invalid order type.
Инструмент SBER, клиент - Открытие. В ручном режиме сделки проходят, на реальном и демо-счете не пробоавл.
В чем может быть ошибка? Правда ли, что на фондовом рынке нельзя заключать сделки по рыночной цене?
Добрый день .Если советник работает на ноутбуке и он ушел в спящий режим будет ли в этом случае работать подлключенный советник ?
А вы включите принт в журнал каких-либо значений и узнаете. Не принтует, значит не работает.
Добрый день .Если советник работает на ноутбуке и он ушел в спящий режим будет ли в этом случае работать подлключенный советник ?
как правило в спящем режиме отключается винт,
недавно я устанавливал сервер, и только на 3 день увидел, что комп спит, тоесть не пашет, т.е. все советники не работали,
отключил спящий режим, все ок.
Это ясно ..Я думал может ктото поделиться опытом с новичком
Добрый день .Если советник работает на ноутбуке и он ушел в спящий режим будет ли в этом случае работать подлключенный советник ?
Нет. Не будет работать. В настройках электропитания поставьте:
без вашего кода не понять что вы там написали, и почему у вас не работает.
//| Gear.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include <Trade/Trade.mqh>
CTrade trade;
bool TimeFlag, FLG;
int TimeScale=50, TimeInMemory, TimeNow;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---Блок получения информации с биржи
MqlTick oCurrentTick;
SymbolInfoTick(Symbol(), oCurrentTick);
//---Блок определения начала нового временного интервала
TimeFlag=false;
datetime tm=TimeCurrent();
MqlDateTime stm;
TimeToStruct(tm,stm);
if(MathMod(StringToInteger((string)stm.min),TimeScale)==0)
{
TimeNow=StringToInteger((string)stm.min);
}
if(TimeNow != TimeInMemory)
{
TimeInMemory=TimeNow;
TimeFlag=true;
//Print(_Symbol);
}
if(TimeFlag)
{
if(FLG)
{
if(!trade.Buy(1,_Symbol))
{
//--- сообщим о неудаче
Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
". Описание кода: ",trade.ResultRetcodeDescription());
}
else
{
Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
FLG=false;
}
else
{
trade.Sell(1);
FLG=true;
}
}
}
//+------------------------------------------------------------------+
Так делать нельзя:
int TimeScale=50,TimeInMemory,TimeNow;
точнее после такого объявления обязательно в OnInit() нужно явно проинициализировать (присвоить значения) этим переменным.
Метод Sell также обложите проверками, вроде
" (",trade.ResultRetcodeDescription(),")");
А ещё может быть одна загвоздка - утром, при открытии торгов, торги идут не сразу, не с первой секунды - вот в этот момент возможны ошибки.