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

 
VOLDEMAR:
Вот когда вы это на реале запустите " шаг*пункт станут > теперешнего убытка, тогда и прибудет к Вам прибыль" вы увидите как ваша прибыль становится фиксированным минусом ... Из за работы брокера ... Я не зря задался поставить тейк так как по прибыли уже проверено ..........
Странный Вы. Моё сообщение является ещё одним ответом на Ваш вопрос. Это лишь другой способ. Но он более понятен визуально.
 
подскажите, пожалуйста, начинающему программеру, как с помощью функции OrderSelect выбрать последнюю закрытую сделку? Я пытался так: OrderSelect(1,SELECT_BY_POS,MODE_HISTORY), но судя по всему таким образом никакой ордер не выбирается...
 
кто-нибудь реализуйте пожалуйста эту идею советника:

Идея номер 5 ТС - Собственный Паттерн ( Образец ). Там и рисунок есть. ТС и торговые критерии простые и

много времени у хорошего программера не отнимут. Неужели никому не интересно посмотреть на результаты ?
 
Пожалуйста подскажите кто знает - как провести тест с плечом 1:1 ?
 

Попробуйте открыть демосчет с таким плечом - 1:1. И тестируйте.

Может получится?


 
Moslift:
подскажите, пожалуйста, начинающему программеру, как с помощью функции OrderSelect выбрать последнюю закрытую сделку? Я пытался так: OrderSelect(1,SELECT_BY_POS,MODE_HISTORY), но судя по всему таким образом никакой ордер не выбирается...


Посмотрите вот здесь: https://www.mql5.com/ru/forum/131859

-Страница№4
GetTypeLastClosePos - Возвращает тип последней закрытой позиции или -1
GetTypeLastOpenPos - Возвращает тип последней открытой позиции или -1
isCloseLastPosByStop - Возвращает флаг закрытия последней позиции по стопу
isCloseLastPosByTake - Возвращает флаг закрытия последней позиции по тейку.
isLossLastPos - Возвращает флаг убыточности последней позиции.
isTradeToDay - Возвращает флаг торгов сегодня
NumberOfBarCloseLastPos - Возвращает номер бара закрытия последней позиции или -1.
NumberOfBarOpenLastPos - Возвращает номер бара открытия последней позиции или -1.
NumberOfLossPosToday - Возвращает количество убыточных позиций, закрытых сегодня.
PriceCloseLastPos - Возвращает цену закрытия последней закрытой позиций.

 
Moslift:
подскажите, пожалуйста, начинающему программеру, как с помощью функции OrderSelect выбрать последнюю закрытую сделку? Я пытался так: OrderSelect(1,SELECT_BY_POS,MODE_HISTORY), но судя по всему таким образом никакой ордер не выбирается...

Попробуйте так:

   int      i, j;
   datetime t;
   for (i=0; i<OrdersHistoryTotal(); i++) {           // Цикл по закрытым ордерам терминала
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {// Если выбран ордер...
         if (OrderType()>1)               continue;   // ... если его тип не Buy и не Sell, переходим к следующему...
         if (OrderSymbol()!=Symbol())     continue;   // ... если его символ не соответствует символу графика - к следующему...
         if (OrderMagicNumber()!=Magic)   continue;   // ... если его магик не соответствует магику советника (в переменной Magic) - к следующему
         if (OrderCloseTime()>t) {                    // ... если время его закрытия больше предыдущего
            t=OrderCloseTime();                       // ... сохраним новое наибольшее время закрытия, ...
            j=i;                                      // ... сохраним индекс ордера в массиве закрытых ордеров
            }                   
         }
      }
   if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))     // На этом этапе j содержит индекс последнего закрытого ордера
      Print("Выбран последний закрытый ордер с тикетом ",OrderTicket());

Учтите, что в цикле проверяются только Бай или Селл. Надеюсь на основе сего сможете сделать выбор и остальных типов ордеров

ЗЫ... Писал "на коленке" мог ошибочку где-нить упустить какую...

 

Скажите пожалуйста почему не работает эта функция и как сделать так чтобы работала?


nomer_sdelki=OrderSend(Symbol(),OP_SELL,1,Bid,3, Bid-10*Point,Ask+10*Point,"My order #"+1,16384,0,Green);

------------------------------------------------------------------------------------------------------------------------

А вот в таком виде работает!!!

nomer_sdelki=OrderSend(Symbol(),OP_SELL,koefficent,Bid,3,0,0,"My order #"+1,16384,0,Green);

то есть когда не заданы стопы работает.

------------------------------------------------------------------------------------------------------------------------------

Вот эта функция тоже не работает, как исправить?

OrderClose(nomer_sdelki,koefficent,Bid,3,Red);


-----------------------------------------------------------------------------------------------------------------------------------



 
leonid553:

Попробуйте открыть демосчет с таким плечом - 1:1. И тестируйте.

Может получится?


Сенкс ( Спасибо ) :))
 

Чудеса какие-то...

Было сообщение и нетути...

Отвечу: Может так нужно?

// ----------------- SchBuyLs() ---------------------------------------------
//  Функция возвращает суммарный лот Бай-ордеров 
//----------------------------------------------
double SchBuyLs_b() {
   double SchBuyLs=0;
   int i;
   string SMB=Symbol();
   for (i=OrdersTotal()-1; i>=0; i--) {                  //Начало цикла
      if (!OrderSelect(i, SELECT_BY_POS)) WriteError(i);
      else  {                                            //начало работы с выбранным ордером
         if (OrderSymbol()!=SMB)    continue;
         if(OrderType()==OP_BUY)    SchBuyLs+=OrderLots();
         }                                               //конец работы с выбранным ордером
      }                                                  //Конец цикла
   return(SchBuyLs);                                     // При ошибке выбора ордера функция вернёт ноль
}
// ----------------------------------------------------------------------------