Бета-тестирование MetaTrader 5 началось! - страница 77

 

функция:

bool FileIsLineEnding(
int file_handle // handle файла
);

После первого вызврата true - каждый возврат true, разве так и должно быть?

текст.файл:

1 2
3 4 5

скрипт:

void OnStart()
  {
   int hh=FileOpen("text.csv", FILE_READ|FILE_CSV|FILE_ANSI, '\t');
   while(FileIsEnding(hh)==false)   Print(FileReadString(hh)," ",FileIsLineEnding(hh));
   FileClose(hh);
  }

print:

 1   false
 2   true
 3   true
 4   true
 5   true
 

есть возможность доступа к enum спискам по номеру члена списка?

enum months // перечисление именованных констант
{
January,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
};

month testmonth=1;

Print(testmonth);

и результатом получить

February

 
betmen >>:

есть возможность доступа к enum спискам по номеру члена списка?

enum months // перечисление именованных констант
{
January,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
};

month testmonth=1;

Print(testmonth);

и результатом получить

February

Нет, можете организовать самостоятельно.

 
Rosh >>:

Нет, можете организовать самостоятельно.

Так и делаю с помошью включаемых модулей, что бы методы глаза немозолили с громадными списками switch case... :-( Думал есть способ проще

 

Нашел ошибки:

берем справку

struct MqlTradeRequest
  {
   ENUM_TRADE_REQUEST_ACTIONS    action;           // Тип выполняемого действия
   ulong                         expert;           // Штамп эксперта (идентификатор)
   ulong                         order;            // Тикет ордера
   string                        symbol;           // Имя торгового инструмента
   double                        volume;           // Запрашиваемый объем сделки в лотах
   double                        price;            // Цена 
   double                        stoplimit;        // Уровень StopLimit ордера
   double                        sl;               // Уровень Stop Loss ордера
   double                        tp;               // Уровень Take Profit ордера
   ulong                         deviation;        // Максимально приемлемое отклонение от запрашиваемой цены
   ENUM_ORDER_TYPE               type;             // Тип ордера
   ENUM_ORDER_TYPE_FILLING       type_filling;     // Тип ордера по исполнению
   ENUM_ORDER_TYPE_TIME          type_time;        // Тип ордера по времени действия
   datetime                      expiration;       // Срок истечения ордера (для ордеров типа ORDER_TIME_SPECIFIED)
   string                        comment;          // Комментарий к ордеру
  };

пишем код

void OnStart()
{
//---
MqlTradeRequest Req;
MqlTradeResult Res;

Req.action=TRADE_ACTION_DEAL;
//Req.expert = 1;
Req.symbol=_Symbol;
Req.volume=0.1;
Req.type=ORDER_TYPE_BUY;
Req.type_filling=ORDER_FILLING_AON;
Req.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
Req.sl=Req.price-0.0100;
Req.tp=Req.price+0.0100;
Req.deviation=3;
Req.comment="B100";

}

все успешно компилится


а вот если //Req.expert = 1; раскомментарить то

'expert' - struct member is undefined !b_01_100.mq5 19 8


и контекстная подсказка после Req. не светит expert


кажется понятно теперь просто вместо ".expert" надо по всем модулям исправить на ".magic" и файл справки исправить

 
snik_666 >>:

скачал, снес старый поставил новый он кстати 208 рестарт на 211


справка обновилась по крайне мере находит новую ф-ю ZeroMemory() а вот компиляция C:\Program Files\MetaTrader 5\MQL5\include\Trade\Trade.mqh

все равно

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

Извиняюсь, исправленная версия еще не вошла в дистрибутив. Прикладываю рабочую версию прямо здесь.

Файлы:
trade.mqh  16 kb
 

Как в МТ5 держать Лонг и Шорт одновременно?

Иду в Лонг, затем Шорт и...выхожу из позиций с минусом.

 
dimaxx25 >>:

Как в МТ5 держать Лонг и Шорт одновременно?

Иду в Лонг, затем Шорт и...выхожу из позиций с минусом.

Почитайте Торговая система MetaTrader 5

 


2009.10.28 13:19:52 R001 (EURUSD,M1) Nr(Cen.bid - S_L*_Point) = -9.223464270575145e+018
2009.10.28 13:19:52 R001 (EURUSD,M1) Cen.bid - S_L*_Point = 1.47855
2009.10.28 13:19:52 R001 (EURUSD,M1) _Point = 1e-005
2009.10.28 13:19:52 R001 (EURUSD,M1) S_L = 100
2009.10.28 13:19:52 R001 (EURUSD,M1) Cen.bid = 1.47955

double Nr(double Pr)
{
return(NormalizeDouble(Pr, _Digits));
}

2009.10.28 14:17:00 R001 (GBPUSD,M1) Nr(Cen.ask+S_L*_Point) = -9.224294374058461e+018
2009.10.28 14:17:00 R001 (GBPUSD,M1) Cen.ask+S_L*_Point = 1.6333
2009.10.28 14:17:00 R001 (GBPUSD,M1) _Point = 0.0001
2009.10.28 14:17:00 R001 (GBPUSD,M1) S_L = 10
2009.10.28 14:17:00 R001 (GBPUSD,M1) Cen.ask = 1.6323

Почему функция Nr() так изменяет выражение?

 
Erm955 >>:

Почему функция Nr() так изменяет выражение?

Покажите код, где определяется структура Cen, а лучше весь код.

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