вопрос к программистам - страница 4

 

вот один кусок кода где этот параметр упоминается :

//+----------------------------------------------------------------------------+
//| expert start function |
//+----------------------------------------------------------------------------+
void start() {
if (gbDisabled) {
Message("Критическая ошибка! Советник ОСТАНОВЛЕН!"); return;
}
if (gbNoInit) {
Message("Не удалось инициализировать советник!"); return;
}
if (ShowComment) {
Comment("Current=", TimeToStr(TimeCurrent(), TIME_MINUTES),
" TimeBegin=", TimeBegin,
" TimeEnd=", TimeEnd,
" PauseCycle=", DoubleToStr(PauseCycle, 0), "мин",
IIFs(ShowIndicator, " ShowIndicator", ""),
"\n",
"Distance1=", DoubleToStr(Distance1, 0), "п",
" Distance2=", DoubleToStr(Distance2, 0), "п",
" StopLoss=", DoubleToStr(StopLoss, 0), "п",
" TakeProfit=", DoubleToStr(TakeProfit, 0), "п",
" StopProfit=", DoubleToStr(StopProfit, 2), AccountCurrency());
} else Comment("");

CalculationLevels();
if (ShowIndicator) ShowIndicator(); else DeleteObjects();

ManageOrders();
}

а вот второй

// Закрытие всех позиций и удаление всех ордеров при достижении Стоп-Профита
if (GetProfitOpenPosInCurrency(NULL, -1, Magic)>=StopProfit) {
ClosePosFirstProfit(NULL, -1, Magic);
for (i=0; i<=MAX_PAIRS_ORDERS; i++) DeleteOrders(NULL, -1, Magic+i);
// ещё раз закрытие и удаление
if (!IsTesting()) {
ClosePosFirstProfit(NULL, -1, Magic);
for (i=0; i<=MAX_PAIRS_ORDERS; i++) DeleteOrders(NULL, -1, Magic+i);
}
}

а телепаты просто переместили меня в ветку для новичков . и там тоже все молчат . я думаю что было бы хорошо если бы там отвечали бы новичкам не новечки ))

 
azik1111:

а телепаты просто переместили меня в ветку для новичков . и там тоже все молчат . я думаю что было бы хорошо если бы там отвечали бы новичкам не новечки ))


телепаты не могут общаться постами, словами - они общаются телепатически
 
azik1111:

вот один кусок кода где этот параметр упоминается :

а телепаты просто переместили меня в ветку для новичков . и там тоже все молчат . я думаю что было бы хорошо если бы там отвечали бы новичкам не новечки ))

да, было бы очень хорошо, а еще лучше, если код вставлять с помощью кнопки SCR

а то не очень читаемо.

 
abolk:

телепаты не могут общаться постами, словами - они общаются телепатически
особенно если учесть что они это делают добровольно и бескорыстно, то они молодцы . спасибо большое .
 
первый кусок 
//+----------------------------------------------------------------------------+
//|  expert start function                                                     |
//+----------------------------------------------------------------------------+
void start() {
  if (gbDisabled) {
    Message("Критическая ошибка! Советник ОСТАНОВЛЕН!"); return;
  }
  if (gbNoInit) {
    Message("Не удалось инициализировать советник!"); return;
  }
  if (ShowComment) {
    Comment("Current=", TimeToStr(TimeCurrent(), TIME_MINUTES),
            "  TimeBegin=", TimeBegin,
            "  TimeEnd=", TimeEnd,
            "  PauseCycle=", DoubleToStr(PauseCycle, 0), "мин",
            IIFs(ShowIndicator, "  ShowIndicator", ""),
            "\n",
            "Distance1=", DoubleToStr(Distance1, 0), "п",
            "  Distance2=", DoubleToStr(Distance2, 0), "п",
            "  StopLoss=", DoubleToStr(StopLoss, 0), "п",
            "  TakeProfit=", DoubleToStr(TakeProfit, 0), "п",
            "  StopProfit=", DoubleToStr(StopProfit, 2), AccountCurrency());
  } else Comment("");

  CalculationLevels();
  if (ShowIndicator) ShowIndicator(); else DeleteObjects();

  ManageOrders();
}
второй кусок 
// Закрытие всех позиций и удаление всех ордеров при достижении Стоп-Профита
  if (GetProfitOpenPosInCurrency(NULL, -1, Magic)>=StopProfit) {
    ClosePosFirstProfit(NULL, -1, Magic);
    for (i=0; i<=MAX_PAIRS_ORDERS; i++) DeleteOrders(NULL, -1, Magic+i);
    // ещё раз закрытие и удаление
    if (!IsTesting()) {
      ClosePosFirstProfit(NULL, -1, Magic);
      for (i=0; i<=MAX_PAIRS_ORDERS; i++) DeleteOrders(NULL, -1, Magic+i);
    }
  }
 
Temnyj:

да, было бы очень хорошо, а еще лучше, если код вставлять с помощью кнопки SCR

а то не очень читаемо.

так пойдет ?
 
azik1111:
так пойдет ?

пойдет. Вам же уже ответили. У вас условие:

// Закрытие всех позиций и удаление всех ордеров при достижении Стоп-Профит

если стоп-профит отрицателен, то он достигается при открытии ордера и следует его закрытие

 

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

 
azik1111:

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

Вот именно, прибыль = 0

А по условию как только прибыль стала больше StopProfit ордер следует закрыть/удалить

 

ну и какая это строка . как сделать тут так что бы он воспринял другое условие ? я не програмист . что бы он дал мне возможность поставить отрицательное значение