вот полный код советника
//+------------------------------------------------------------------+
//| test.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
#import "testMT2.dll"
void test1(double& Candles[],double& balance[],double& orderInfo[],double& PointCost[],double& POint[],double& commands[]);
#import
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
double array[6];
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double Candles[120];
double balance[1];
double orderInfo[8];
double PointCost[2] = {10,10};
double POint[2] = {0.0001,0.0001};
double commands[12];
balance[0] = AccountBalance();
int T = OrdersTotal();
int total1 = 0;
int total2 = 0;
int i;
for(i = 0; i < T;i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber() == 123)
{
total1++;
if (OrderType() == OP_BUY)
{
orderInfo[0] = 1;
orderInfo[1] = Bid;
orderInfo[2] = OrderStopLoss();
orderInfo[3] = OrderTakeProfit();
}
else
{
orderInfo[0] = 2;
orderInfo[1] = Ask;
orderInfo[2] = OrderStopLoss();
orderInfo[3] = OrderTakeProfit();
}
}
if(OrderMagicNumber() == 1231)
{
total2++;
if (OrderType() == OP_BUY)
{
orderInfo[4] = 1;
orderInfo[5] = Bid;
orderInfo[6] = OrderStopLoss();
orderInfo[7] = OrderTakeProfit();
}
else
{
orderInfo[4] = 2;
orderInfo[5] = Ask;
orderInfo[6] = OrderStopLoss();
orderInfo[7] = OrderTakeProfit();
}
}
}
Candles[0] = Time[0];
Candles[1] = Open[0];
Candles[2] = High[0];
Candles[3] = Low[0];
Candles[4] = Close[0];
Candles[5] = Volume[0];
Candles[6] = Time[0];
Candles[7] = Open[0];
Candles[8] = High[0];
Candles[9] = Low[0];
Candles[10] = Close[0];
Candles[11] = Volume[0];
test1(Candles, balance, orderInfo, PointCost, POint, commands);
Print(commands[0],commands[1],commands[2],commands[3],commands[4],commands[5]);
if(total1 < 1)
{
if(commands[0] == 1)
{
OrderSend(Symbol(),OP_BUY,commands[4],Ask,3,Ask+commands[2],Ask+commands[1],"test",123,0,Green);
}
else if(commands[0] == 2)
{
OrderSend(Symbol(),OP_SELL,commands[4],Bid,3,Bid+commands[2],Bid-commands[1],"test",123,0,Green);
}
}
if(total2 < 1)
{
if(commands[6] == 1)
{
OrderSend(Symbol(),OP_BUY,commands[10],Ask,3,Ask+commands[8],Ask+commands[7],"test",123,0,Green);
}
else
{
if(commands[6] == 2)
{
OrderSend(Symbol(),OP_SELL,commands[10],Bid,3,Bid+commands[8],Bid-commands[7],"test",1231,0,Green);
}
}
}
else
{
for(i = 0; i < T;i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber() == 1231)
{
break;
}
}
if( commands[8] == -1)
{
if( OrderType() == OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
}
else
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+

- www.mql5.com
Проверте зависимости testMT2.dll сделать это можно в MT5 - набросайте эксперта использующего DLL и посмотрите во вкладке "зависимости" диалога свойств эксперта.
Положите необходимые библиотеки в папку терминала.

- www.mql5.com
Извините за глупый вопрос, но dllSample где посмотреть можно?
<папка мт4>\experts\samples\dllsample
И да, дллку не забыли в libraries положить?
Спасибо большое, изучаю.
Библиотеку положил, def-файл описал. Замечу, если закомментировать код в библиотеке, относящийся к матлабу, все работает.

- www.mql5.com

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день, господа!
Прошу помощи, уже отчаялся.
У меня есть скрипт в матлабе, который экспортируется в виде dll-библиотеки. К этой библиотеке написана обертка на VC++. И есть советник, который все это грузит.
Связка замечательно работает на MT5, но на MT4 выдает ошибку 126. Ситуация в целом аналогична описанной здесь https://www.mql5.com/ru/forum/991
Код из примера так же идет на MT5, но не дружит с MT4. Буду рад любой помощи, заранее спасибо!