Скачать MetaTrader 5

SOS, SOS, SOS - страница 4

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Константин
272
Константин  
logomoris >>:

Логика в следующем: когда выставляются ордера OP_SELLLIMIT и OP_BUYLIMIT, между ними 20 пунктов (МТ4 разрешает устанавливать не более/менее 10 пунктов от рыночной цены), поэтому, чтобы сократить расстояние между OP_SELLLIMIT и OP_BUYLIMIT до 15 пунктов, надо, чтобы рыночтая цена сместилась как минимум на 5 пунктов в сторону OP_SELLLIMIT или в сторону OP_BUYLIMIT. Тогда один из ордеров должен модифицироваться, сокращая тем самым расстояние.

Если модификация только для этого то в ней нет смысла! Т.к. можно выставить сразу нужные уровни! Стоит поменять брокера, допустим на адмирала. Там можно ставить стопы даже на уровне 3 пункта от цены(eurusd)!

George
76
George  
-star- писал(а) >>

Если модификация только для этого то в ней нет смысла! Т.к. можно выставить сразу нужные уровни! Стоит поменять брокера, допустим на адмирала. Там можно ставить стопы даже на уровне 3 пункта от цены(eurusd)!

Именно поэтому я вынес SL и TP как внешние переменные, чтобы их регулировать в зависимости от того или иного дилингового центра. Что касается эксперта, то та комбинация ордеров, которую я представил, является лишь частью стратегии и не раскрывает ее смысла, потому что в том виде, в котором я ее представил - она убыточна. Но меня не это волновало, а те ошибки программирования, которые я допустил при самом начале написания эксперта, и при таком раскладе, написание остальной части эксперта становится бессмысленной, если ее начало ошибочно. Именно это, как видно, и создало у многих впечатление, что мой эксперт - это бессмыслица. И я с этим согласен, то, что я представил - это бессмыслица, но она таковой является только пока отображает часть стратегии, типо как из того мультика про полтора землекопа. Да, я готов поделиться стратегией, но на данном форуме я рискую раскрыть на обозрение стратегию и неполучить ответы на свои вопросы, поэтому выложил "эксперт" в той части, которая не работала, чтобы получить ответ, почему не работает. Вы оказались разумнее всех, идя мне на встречу, это симпатизирует и располагат к дальнейшему общению и возможно обмену информацией.

Левитин Сергей В.
5163
Левитин Сергей В.  
logomoris писал(а) >>

....

Да не берите Вы в голову) Делаете - хорошо, сделаете - молодец, не получится - эка фигня. Тут много народа просто постоянно выпрашивает, что бы им что-нибудь написали безвозмездно. Ваш подход мне более симпатичен. И код Ваш не далеко не самый худший образчик того, что здесь иногда демонстрируют) Не шедевр. но все же... А заказать работу программисту всегда успеете. Будут вопросы по существу - спрашивайте, всегда постараюсь помочь...

George
76
George  
Figar0 писал(а) >>

Да не берите Вы в голову) Делаете - хорошо, сделаете - молодец, не получится - эка фигня. Тут много народа просто постоянно выпрашивает, что бы им что-нибудь написали безвозмездно. Ваш подход мне более симпатичен. И код Ваш не далеко не самый худший образчик того, что здесь иногда демонстрируют) Не шедевр. но все же... А заказать работу программисту всегда успеете. Будут вопросы по существу - спрашивайте, всегда постараюсь помочь...

Еще раз ограмное СПАСИБО!

burbur87
14
burbur87  
segano 2016.06.29 21:09    RU

HELP,HELP,HELP

УЧУСЬ ПИСАТЬ ПРОГИ.ЕСТЬ ПРОБЛЕММА .НЕ ПОНИМАЮ ЛОГИКИ ИНИЦИАЛИЗАЦИИ ПЕРЕМЕННЫХ SL И TP

В МОЕМ ПОНИМАНИИ ЭТО ЕСЛИ ОРДЕР ВЫБРАН И ЕСТЬ ТИКЕТ.ТОГДА ORDERSTOPLOSS+SL*POINT,DIGETS

ОБЬЯСНИТЕ ПЛИЗ ЛОГИКУ АРИФМЕТИКИ.ЗНАЮ ЧТО ТАКОЕ ASK И BID

ИЗ ЭТОГО ВЫТЕКАЕТ ПРОБЛЕМА

   if(Digits == 3||Digits == 5)
    {
       Slippage    *= 10;
       TakeProfit  *= 10;
       StopLoss    *= 10;
    }

ЕСТЬ ПРОВЕРКА НА КОЛИЧЕСТВО ЦИФР ПОСЛЕ ЗАПЯТОЙ.

ЕСТЬ ФУНКЦИЯ ДЛЯ ИЗМЕНЕНИЯ МИНИМАЛЬНОГО SL ЕСЛИ ОН НЕ СООТВЕТСТВУЕТ

 void CheckValidStop(string symbol,double price,double& sl)
{
  if(sl==0)
  return;
  
  double min_stop_server = MarketInfo(symbol,MODE_STOPLEVEL)*MarketInfo(symbol,MODE_POINT);

  if(MathAbs(price-sl) <= min_stop_server)
  {
     if(price>sl)
      sl = price - min_stop_server;
   else sl = sl + min_stop_server;   
  }///  if(MathAbs(price-sl) <= min_stop_server)     

  sl = NormalizeDouble(sl,MarketInfo(symbol,MODE_DIGITS));   
}//функция     

КОМПЛИМАТОР ВЫДАЕТ 0 ОШИБОК А ТЕСТЕР ПИШЕТ ERROR 130,НЕ ВЕРНЫЙ СТОП ЛОС 

в карман | правка | удалить | ответить
12
segano 2016.06.29 21:11    RU
2016.06.28 21:42:23.439 2016.06.23 02:55  торговля RSI EURUSD,M5: OrderModify error 130

И ВОТ ЭТО

 2016.06.28 21:42:23.402 2016.06.23 00:00  торговля RSI inputs: Lots=0.1; Slippage=5; StopLoss=10; TakeProfit=30; RSIPeriod=7; Magic=1087; 

КАК ОНИ ГЛОБАЛЬНО ИНИЦИИРОВАНЫ

ХОТЯ В КОДЕ Я НАПИСАЛ ТАК,ПОМИМО ФУНКЦИИ МОДИФИ

          SL = NormalizeDouble( Ask - StopLoss*Point,Digits);


burbur87
14
burbur87  
гуру где же ВЫ!!!!!!!
1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий