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

 
Snegovik:


есть скрипты, которые одновременно открывают на одном символе sell на втором buy.

а меня инетересует скрипт, который одновременно может открыть sell/buy на 7-10 символах, указанным для каждого символа объемом, по текущим ценам.

Пример:

sell EURUSD 1

buy GBPUSD 1.5

sell USDCAD 1.2

buy AUDUSD 1.1

buy NZDUSD 2

buy USDCHF 3

скрипт MultiOrders почти идеален, только там 5 полей для символов. и не знаю, как добавить еще .

Аналогично. Разберитесь с этим скриптом, и у Вас, в Вашем скрипте выйдет ещё лучше, и даже сможете добавить дополнительную функциональность.
 
snail09_1:
А проверить трудно, или лень? Легче вопрос задать. Может ли быть цена предложения равна нулю? Может, если ничего не продается8-(
не в этом дело может ли терминал в какой то момет обнулить bid (интересен личный опыт)
 
YOUNGA:
не в этом дело может ли терминал в какой то момет обнулить bid (интересен личный опыт)

Ни разу не видел. А Вы видели абсолютный ноль на термометре?

Ну не может проблема крыться именно в этом. М.б. Вам поговорить не с кем?

 
snail09_1:
Аналогично. Разберитесь с этим скриптом, и у Вас, в Вашем скрипте выйдет ещё лучше, и даже сможете добавить дополнительную функциональность.


не совсем понимаю, как писать .dll

если я правильно понял, основа скрипта именно в этом файле.

 
Парни! В тестере стратегий на истории эксперт не скидывает информацию в файл, только при торговле в онлайн. С чем это связано и как это вылечить? Спасибо.
 
net:
Парни! В тестере стратегий на истории эксперт не скидывает информацию в файл, только при торговле в онлайн. С чем это связано и как это вылечить? Спасибо.
Он скидывает, только в каталог \MetaTrader 4\tester\experts\files
 
Snegovik:


не совсем понимаю, как писать .dll

если я правильно понял, основа скрипта именно в этом файле.


Не может ни 1 скрипт послать приказ на сервер об открытии сразу нескольких ордеров. Придётся открывать по одному. Предложенная Вам DLL-ка просто создаёт визуальное окно и работает с ним. Для Вашей задачи можно вполне обойтись средствами MQL4
 

Вот моя функция рассчёта лота (мартина):

double Lots()
 {
 //  double LotsArray[]={mode_1,mode_2,mode_3,mode_4,mode_5,mode_6};
 //  double LotsArray[]= {0.1,0.2,0.3,0.4,0.5,0.6};
   int LossCount = 0;
   double LotM=Lot;
   int total = OrdersHistoryTotal();
   for (int i = total-1; i >= 0; i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
       {
         if (OrderProfit() > 0)
          {
            LotM=LotsArray[0];
          }         
          else
           {
            LotM=LotsArray[LossCount+1];
            LossCount++;
           }
       }
    }
   return(LotM);
}

Это глобальные переменные для данной функции:

double Lot = 0.1;
extern double mode_1 = 0.1;
extern double mode_2 = 0.2;
extern double mode_3 = 0.4;
extern double mode_4 = 0.8;
extern double mode_5 = 1.6;
extern double mode_6 = 3.2;
double LotsArray[5];

Вот что в int init()

 LotsArray[0] = mode_1;
 LotsArray[1] = mode_2;
 LotsArray[2] = mode_3;
 LotsArray[3] = mode_4;
 LotsArray[4] = mode_5;
 LotsArray[5] = mode_6;

При тестах советника в журнале экспертов выводятся следующие ошибки:

2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: ERROR BUYSTOP : 1.22443 SL:1.22377 TP:1.22506
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: OrderSend error 4051
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: invalid lots amount for OrderSend function
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: Bid:1.22432 Ask:1.22438 avgSpread:0.00006  Commission rate:0.00003  Real avg. spread:0.00009  Lots:1.00   HIGH SPEED   MAX
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: 2012.07.19 16:19 tick:514
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: ERROR BUYSTOP : 1.22442 SL:1.22376 TP:1.22505
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: OrderSend error 4051
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: invalid lots amount for OrderSend function
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: Bid:1.22431 Ask:1.22437 avgSpread:0.00006  Commission rate:0.00003  Real avg. spread:0.00009  Lots:1.00   HIGH SPEED   MAX
2012.09.19 23:14:22     2012.07.19 16:19  mmm2.1.1~ EURUSD.5,M5: 2012.07.19 16:19 tick:513

 Неужели что-то не верно с кодом? Что это может означать?

 Тут https://docs.mql4.com/ru/runtime/errors я вижу, что это ошибка:

 ERR_INVALID_FUNCTION_PARAMVALUE (4051)

Т.е. ошибка связана с неверными параметрами. Как я понял неверный лот. Но не понимаю что тут не верного. 

 
hoz:

Вот моя функция рассчёта лота (мартина):

Это глобальные переменные для данной функции:

Вот что в int init()

При тестах советника в журнале экспертов выводятся следующие ошибки:

Неужели что-то не верно с кодом? Что это может означать?

Тут https://docs.mql4.com/ru/runtime/errors я вижу, что это ошибка:

ERR_INVALID_FUNCTION_PARAMVALUE (4051)

Т.е. ошибка связана с неверными параметрами. Как я понял неверный лот. Но не понимаю что тут не верного.


double LotsArray[5]; 5 на 6 исправьте.
 
здравствуйте! можно ли модифицировать ордер один раз? у меня сейчас модифицируется ордер при каждом тике! по моему это не правильно!...