советник - разные вопросы - страница 2

 

#Lot - Закрыто

Я решил эту проблему, как показано ниже.

ObjectSetString( 0, _edtLot, OBJPROP_TEXT, "Lot: " + DoubleToString( _lot, 2 ) );

В любом случае, спасибо @Keith

 

#Ошибки с ордерами - Открыть

В период"отключения" интернета я несколько раз нажимал на кнопки "Купить и Продать" ордера, но ничего не происходило, так что через несколько минут интернет"восстановился" - все ордера открылись (какие мне нужно открывать ордера в период отключения - P.S. количество ордеров более 15).

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

Заранее спасибо.

 

Вы нажали, заказ был отправлен, потеряли соединение. Вы нажали еще несколько раз, поставив их в очередь, после чего либо OrderSend вернулся с ошибкой 128, либо было восстановлено соединение и отправлен правильный OrderSend. Вы проигнорировали ошибку и обработали еще несколько кликов.

Игнорируйте щелчки во время выполнения OrderSend.

 
whroeder1:

Вы нажали, заказ был отправлен, потеряли соединение. Затем вы нажали еще несколько раз и поставили их в очередь, после чего либо OrderSend вернулся с ошибкой 128, либо было восстановлено соединение и отправлен правильный OrderSend. Вы проигнорировали ошибку и обработали еще несколько кликов.

Игнорируйте щелчки во время выполнения OrderSend.

Большое спасибо за быстрый ответ.

Я понимаю так:

  • Я могу написать код для'Ignore clicks while OrderSend is in progress.'
  • Я могу написать код для Errors.
Правильно ли это?

После вашего ответа я буду исследовать этот вопрос.

Всего наилучшего!

 

#Лот 0 (нулевой) - открытый

Я пытаюсь 'Lot' размер не может быть 0 (ноль).

Мне нужна помощь, пожалуйста.

double _lotSize = 0.10 ; // Lot Size
double _lotStep = 0.01 ; // Lot Step
//-------Lot Minus--------------------------------------------------------------|
if ( sparam == _btnLotMinus )
{
    ObjectSetInteger( 0, _btnLotMinus, OBJPROP_STATE, false );
    _lotSize -= _lotStep;
    if ( _lotSize <= 0 )
    {
        _lotSize = _lotStep;
    }

    _calcUpdade( CALC_CHANGE_LOT );

    Print( " | DoubleToStr /   ", DoubleToStr( _lotSize, 2 ) );
}   //---if Close


Спасибо!

 
Max Enrik:

#Лот 0 (ноль) - Открыть


Я пытаюсь 'Lot' размер не может быть 0 (ноль).

Мне нужна помощь, пожалуйста.

double _lotSize = 0.10 ; // Lot Size
double _lotStep = 0.01 ; // Lot Step


Спасибо!

NB: Я не прочитал всю тему.

Почему вы вручную устанавливаете значение для lotstep? Это определяется брокером (и вполне может быть больше, чем 0.01).

double _lotStep = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
 
honest_knave:

Почему вы вручную устанавливаете значение для lotstep? Оно определяется брокером (и вполне может быть больше, чем 0,01).

О! Отлично, спасибо, я скоро добавлю это в свой советник.
 
Max Enrik:
О! Отличный человек, спасибо, я скоро добавлю его в свой советник.

Вам нужно проверить maxlot, minlot и lotstep.

HTH

 
honest_knave:

Вам нужно проверить maxlot, minlot и lotstep.

HTH

Да!

Это очень помогает. Я не возражаю против максимального и минимального лотов. Я начал исследовать этот вопрос. (И я нашел кое-что всего за несколько минут).

Большое спасибо.

 
Я использую NormalizeDouble для своих советников. Но меня беспокоит сообщение'NormalizeDouble', но я вижу размер лота на графике следующим образом: 0.07

Поэтому мне нужен хороший совет, пожалуйста.

02:00:00.069 - custom expert EURUSD,H1: | _lotSize - NormalizeDouble: 0.07000000000000001
02:00:00.069 - custom expert EURUSD,H1: | _lotSize - DoubleToString : 0.07