[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 693

 
Hedin:


На форексе практически все сервера бесплатные.

И даже более того, практически у каждого ДЦ есть демо-счета, на которых можно торговать виртуальными деньгами вместо настоящих.

Спасибо, можете дать плиз конкретную ссылку??! Гуглом найти не получается. СПС еще раз.
 
artmedia70:
Что такое Мargin CALL ( маржин колл)?
Margin Call – условие, при котором наступает принудительное закрытие позиции.

Это происходит, когда остаток на вашем счете (Equity) подошёл к нулю от cуммы необходимого залога (Margin) для суммы всех открытых позиций.

Операция происходит в автоматическом режиме. В некоторых компаниях маржин колл устанавливается на уровне 30% от залогового депозита.

Т.е. [AccountFreeMargin() = AccountEquity() - Залог] ?

где Залог -> суммарный по всем открытым позициям.




 
Guest77:
Спасибо, можете дать плиз конкретную ссылку??! Гуглом найти не получается. СПС еще раз.

Все что вам необходимо это скачать и установить МетаТрейдер 4 любого брокера.

В программе нужно открыть Демо счет и можно начинать пользоваться. Все бесплатно. Брокера найдите через Google, их хватает.

 

Всем здравствовать. Столкнулся с проблемой при написании советника, чувствую, что ошибка где-то на поверхности, а найти не могу. Буду благодарен если кто-нибудь подскажет.

Суть проблемы: поступила просьба дописать в один из советников трейлинг-стоп Игоря Кима, для нескольких позиций одновременно. Все добавил, а в результате получилась бяка :( Трал постоянно движется на расстоянии TStop.Sell и TStop.Buy пунктов от бида и аска, т.е. цена идет вверх, трал тоже вверх, цена вниз - трал вниз... Бригаду телепатов вызывать не надо, добавляемый код сам приведу :)

int start()
{
 if(GetProfitOpenPosInCurrency(Symbol(),-1,MagicNumber)>=ProfitToStartTral) //если прибыль в валюте депозита больше заданной в настройках
    {
     CloseLoss(Symbol(),-1,MagicNumber);//закрываем все убыточные позы советника по текущему символу
     start3();//запускаем трал
    }
  //бла-бла-бла, тут еще куча рабочего кода :)
}

Пользовательские функции:

void start3() 
 {
  if (ShowComment) {
    Comment(IIFs(AllSymbols, "AllSymbols  ", "")
           ,"Magic="+IIFs(Magic<0, "Любой", DoubleToStr(Magic, 0))+"  "
           ,IIFs(TSProfitOnly, "TSProfitOnly  ", "")
           ,"TStop.Buy="+DoubleToStr(TStop.Buy, 0)+"п  "
           ,"TStop.Sell="+DoubleToStr(TStop.Sell, 0)+"п  "
           ,"TrailingStep="+DoubleToStr(TrailingStep, 0)+"п  "
           );
  } else Comment("");

  string sy=IIFs(AllSymbols, "", NULL);
  SimpleTrailing(sy, -1, Magic);
 } 
//*********************************************************************//
void SimpleTrailing(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        po=MarketInfo(OrderSymbol(), MODE_POINT);
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            if (!TSProfitOnly || pp-OrderOpenPrice()>TStop.Buy*po) {
              if (OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0) {
                ModifyOrder(-1, pp-TStop.Buy*po, -1);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            if (!TSProfitOnly || OrderOpenPrice()-pp>TStop.Sell*po) {
              if (OrderStopLoss()>pp+(TStop.Sell+TrailingStep-1)*po || OrderStopLoss()==0) {
                ModifyOrder(-1, pp+TStop.Sell*po, -1);
              }
            }
          }
        }
      }
    }
  }
} 
//****************************************************
string IIFs(bool condition, string ifTrue, string ifFalse) {
  if (condition) return(ifTrue); else return(ifFalse);
}
 

Такой вопрос, можно ли передавать параметры указанные в коде индикатора ( не именно параметры самого индикатора) другому индикатору для обработки? 

Вот второй вопрос, как передавать параметры из индикатора в советник, и как этот советник будет себя вести в режиме тестирования?

Заранее  Спасибо! 

 

Вы очень замысловато объясняете.

Самый простой способ передачи в МТ через GlobalVariable примерно как буфер обмена. Один кладёт другой берёт.

Но, есть ещё масса вариантов, они по ситуации. Т.к. ситуации нет, говорить о вариантах сложно. Тестироваться будет на одном и том же символе.

 
zhuki:

Вы очень замысловато объясняете.

Самый простой способ передачи в МТ через GlobalVariable примерно как буфер обмена. Один кладёт другой берёт.

Но, есть ещё масса вариантов, они по ситуации. Т.к. ситуации нет, говорить о вариантах сложно. Тестироваться будет на одном и том же символе.


GlobalVariable в справке чет не нашел MT,.... 

на счет вариантов. Расчет идет  к примеру следующий, есть индикатор зигзага, мною в код зигзага добавлен код определяющий паттерны, типа If (условие )  если условие выполяется, переменной a =1 если не выполняется то а=0 .  значение этой переменной мне и надо передать в другой индикатор,  в код вида если переменная в таком то индикаторе была равна (а=1) делай следующее, если а=0 соответственно.     Это что косеется передачи параметров между индикаторами.  

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

 

Такой же вопрос. Как передать данные из одного нестандартного индикатора в другой?

 
zhuki:

Вы очень замысловато объясняете.

Самый простой способ передачи в МТ через GlobalVariable примерно как буфер обмена. Один кладёт другой берёт.

Но, есть ещё масса вариантов, они по ситуации. Т.к. ситуации нет, говорить о вариантах сложно. Тестироваться будет на одном и том же символе.

Вызвать, как стандартный, например, iMA по короткому имени  нельзя?
 
Abzasc:
Вызвать, как стандартный, например, iMA по короткому имени  нельзя?

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