Оценка маржинальных требований в MQL5 - страница 5

 
Petros Shatakhtsyan:

Советую внимательно прочитать для чего эта функция:


margin

[out]  Переменная, в которую будет записан необходимый размер маржи в случае успешного выполнения функции. Вычисление производится как если бы на текущем счете не было отложенных ордеров и открытых позиций.

Значение маржи зависит от многих факторов и может меняться при изменении рыночного окружения.

И сразу казус: как Вы предлагаете учитывать маржу по отложенным ордерам, если исходить из предположения, что отложенный ордер может сработать, а может и не сработать?

 
Vladimir Karputov:

И сразу казус: как Вы предлагаете учитывать маржу по отложенным ордерам, если исходить из предположения, что отложенный ордер может сработать, а может и не сработать?

Вот именно. И не только отложенный ордер. Когда на счете есть открытые позиции, то возникает вопрос: с каким лотом надо открыть ордер, чтобы маржа была меньше Free Margin.

Для этого надо знать кредитное плечо не торгового счета, а именно текущее плечо символа. А без реального плеча, определить маржу нельзя.

 

Ладно, теоретики ...

Вот вытаскиваю фрагмент кода с рабочей проги, которой уже лет 100

)))

            if(Action=="BUY" && orBUY==0)
               {
                  if(OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1,ASK,Mgn)==true)
                     {
                        Lot=Acc_Bal*Risk/(Mgn*lvrg);
                        if(Lot<minLot)Lot=0;
                        if(Lot>maxLot)Lot=maxLot;
                        Lot=NormalizeDouble(Lot,ls);
                        if(Lot>=minLot)
                           {
                              if(OpenPositions(_Symbol, "BUY", Lot, Magik_Number, "xxx")==-1)
                                 {
                                    Fun_Error(GetLastError());
                                    return;
                                 }
                           }
                     }              
               }
            if(Action=="SELL" && orSELL==0)
               {
                  if(OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,1,BID,Mgn)==true)
                     {
                        Lot=Acc_Bal*Risk/(Mgn*lvrg);
                        if(Lot<minLot)Lot=0;
                        if(Lot>maxLot)Lot=maxLot;
                        Lot=NormalizeDouble(Lot,ls);
                        if(Lot>=minLot)
                           {              
                              if(OpenPositions(_Symbol, "SELL", Lot, Magik_Number, "xxx")==-1)
                                 {
                                    Fun_Error(GetLastError());
                                    return;
                                 }                              
                           }
                     }           
               }

Ну надо, надо плечо, уболтали!

Забыл уже...

ТС, сделай switch, пропиши плечо ручками для каждого символа и нихай прога его знает

Не заморачивайся там, где проблема решается как "раз плюнуть", пиши код и перешагивай.

// Если сам не умеешь считать свои деньги, то за тебя их посчитают другие. ( © new-rena )

Удачи тебе!

Гудбай

 
Renat Akhtyamov:

Ладно, теоретики ...

Вот вытаскиваю фрагмент кода с рабочей проги, которой уже лет 100


Ну надо, надо плечо, уболтали!

Забыл уже...

ТС, сделай switch, пропиши плечо ручками для каждого символа и нихай прога его знает

Не заморачивайся там, где проблема решается как "раз плюнуть", пиши код и перешагивай.

// Если сам не умеешь считать свои деньги, то за тебя их посчитают другие. ( © new-rena )

Удачи тебе!

Гудбай

Дополнение к сказанному:

И не забывай периодически переписывать этот список. Не каждый час, а только когда брокер поменяет эти значения. ))))))

 
Alexey Viktorov:

Дополнение к сказанному:

И не забывай периодически переписывать этот список. Не каждый час, а только когда брокер поменяет эти значения. ))))))

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

В данном случае 1к2

)))

У меня минимум 1к100

как грится тьфу-тьфу, пока не грозились уменьшать...

)))

 
Renat Akhtyamov:

Ладно, теоретики ...


Это как раз не теория, а практика.

Написали неграмотную программу и показываете всем ваши "шедевры" и говорите ерунду.

Если у вас будут открытые позиции, то ваша программа сработает неправильно.

 
Petros Shatakhtsyan:

Это как раз не теория, а практика.

Написали неграмотную программу и показываете всем ваши "шедевры" и говорите ерунду.

Если у вас будут открытые позиции, то ваша программа сработает неправильно.

слуш, читай вним

if(Action=="BUY" && orBUY==0)

скоро Вам по три буквы в слове писать буду...

 
Renat Akhtyamov:

слуш, читай вним

if(Action=="BUY" && orBUY==0)

скоро Вам по три буквы в слове писать буду...

Это что, угроза уличного пацана ?

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

 
Petros Shatakhtsyan:

Это что, угроза уличного пацана ?

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

дело хозяйское, я не угрожал

просто показал то что Вы не смогли самостоятельно увидеть

на этом усё

)

 
Renat Akhtyamov:

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

В данном случае 1к2

)))

У меня минимум 1к100

как грится тьфу-тьфу, пока не грозились уменьшать...

)))

Ренат, на воротах "Бухенвальд" было написано jedem das Seine

Не надо навязывать своё мнение другим. Кому-то может быть надо загрузить депозит по "самое немогу" и это его решение зависит от того параметра которое тут обсуждается.