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

 
T-G:
Подскажите пожалуйста функцию, что бы рассчитать максимально допустимый лот открытия на депозите, с учетом открытых позиций (эквити). Заранее спасибо.

double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);

double requiredlots = AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED);

maxlot = MathMin(maxlot, requiredlots); // Максимальный объем, на который можно открыться

// Далее необходимо maxlot нормализовать под спецификацию контрактов, прежде чем вставлять в приказ
 

Приветствую.

Помогите опознать индюк: http://findicators.com/wp-content/uploads/2009/04/heiken-ashi.jpg

Утверждается, что это хейкен-аши, но даже беглый расчет надрывает шаблон. Возможно, кто-то знает, что это?

С уважением.

 
ns88ns:

Приветствую.

Помогите опознать индюк: http://findicators.com/wp-content/uploads/2009/04/heiken-ashi.jpg

Утверждается, что это хейкен-аши, но даже беглый расчет надрывает шаблон. Возможно, кто-то знает, что это?

С уважением.


Он самый, точнее его модификация. Строится по машкам
 
Vinin:

Он самый, точнее его модификация. Строится по машкам


Благодарствую...

Я уж сообразил... Только не понял, в данном случае ХА намазан на МА тупо по ценру диапазона или как-то иначе... Ну это уже не принципиально.

 
Помогите доработать индикатор до полуавтомата.

Рисую простую линию вручную, имя у нее Trendline 42864 например. Как сделать так что когда я буду создавать очередную линию, код будет переименовывать каждую созданную линию, перекрашивать ее, задать толшину и тд.

Для чего это мне нужно? Есть индикатор, нужно из него сделать полуавтомат. Т.е. рисую трендовую линию вручную, код должен перекрашивать ее и рисовать по ее данным еще дев линии вертикальную и горизонтальную. И так нужно чтобы к каждой пририсовывал.

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

Файлы:
 

Добрый день. При попытке одновременно модифицировать два ордера, для селл - установить сл.,

для бай - установить тп., модифицируется только ордер селл, а бай не видит. Подскажите в чём может

быть причина?

void FirstSellLockBuyModifi()
{
 double lock_buy_tp = NormalizeDouble((FirsSellLockBuyAvP()+TakeProfit*Point),Digits);
 int spread = MarketInfo(Symbol(),MODE_SPREAD);
 double first_sell_sl = NormalizeDouble((lock_buy_tp+spread*Point),Digits);        
 for (int i = 0; i <= OrdersTotal(); i ++)
    {
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()!=Symbol())continue;
     if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
     if (OrderType()==OP_SELL && OrderOpenPrice()==FirstSellPrice())
       {Print("Мод-ция ордера FIRST SELL");
        OrderModify(OrderTicket(),OrderOpenPrice(),first_sell_sl,OrderTakeProfit(),0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера FIRST SELL № ",OrderTicket()," ошибка № ",error);
       }
     if (OrderType()==OP_BUY)
       {Print("Мод-ция ордера LOCK BUY");
        OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),lock_buy_tp,0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера LOCK BUY № ",OrderTicket()," ошибка № ",error);
       }
    }
 return(0);
}
 
TEXX:

Добрый день. При попытке одновременно модифицировать два ордера, для селл - установить сл.,

для бай - установить тп., модифицируется только ордер селл, а бай не видит. Подскажите в чём может

быть причина?

Вполне не исключено, что здесь?

for (int i = 0; i <= OrdersTotal(); i ++)

Пробел перед ++ непонятно зачем?

Но основной ошибкой является одновременная модификация более одного ордера. Сервер не сможет ее выполнить, т.к. при попытке модификации второго ордера торговый поток будет закрытым. Хотя в тестере такая ситуация может пройти без проблем.

 
TEXX:

Добрый день. При попытке одновременно модифицировать два ордера, для селл - установить сл.,

для бай - установить тп., модифицируется только ордер селл, а бай не видит. Подскажите в чём может

быть причина?

     
 for (int i = 0; i <= OrdersTotal(); i ++)  // 1 ошибка
  
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()!=Symbol())continue; // нет смысла
     if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)  // после неё нет открывающейся скобки
  
   if (OrderType()==OP_SELL && OrderOpenPrice()==FirstSellPrice())
       {Print("Мод-ция ордера FIRST SELL");
        OrderModify(OrderTicket(),OrderOpenPrice(),first_sell_sl,OrderTakeProfit(),0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера FIRST SELL № ",OrderTicket()," ошибка № ",error);
       }

     if (OrderType()==OP_BUY)
       {Print("Мод-ция ордера LOCK BUY");
        OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),lock_buy_tp,0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера LOCK BUY № ",OrderTicket()," ошибка № ",error);
       }

какую ошибку выдает?
 
sergeev:
какую ошибку выдает?


в том, то и дело нет ошибок, просто бай не модифит и всё, а если селл закомментировать, то модифит....
 

Отрицательный результат- ведь тоже результат и является не менее важным показателем, а вот если видим такую картину(на фунте вообще слив со 100 000 до 2000 с лотом 1)......то есть ли смысл переписать код бай на селл, стоп на профит и т.п.??

Ваше мнение?

Причина обращения: