Начальный размер депозита -- какой? - страница 9

 

Долой винду глючную :)


Чтоб измерить угол нужна точка+уровень отсчёта и точка, по которой мерить угол.


Для начала:

int cnt, total;
total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
iTicket=OrderTicket();
}

 
meta-trader2007 писал (а) >>

Для начала:

Вот фрагмент кода с перебором ордеров. Код трейлингстопа взят отсюда: 'Библиотека функций и советники для трейлинга / Юрий Дзюбан'

   int cnt, itotal;
   total=OrdersTotal();
   for(cnt=0;cnt<total;cnt++)
   {
   OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
   iTicket=OrderTicket();
   Comment("\nOrderTicket = ", iTicket);

   // проверяем переданные значения
   if ((iTicket==0) || (!OrderSelect(iTicket,SELECT_BY_TICKET)) || ((iTmFrme!=1) && (iTmFrme!=5) && (iTmFrme!=15) && (iTmFrme!=30) && (iTmFrme!=60) && (iTmFrme!=240) && (iTmFrme!=1440) && (iTmFrme!=10080) && (iTmFrme!=43200)) || (iMAPeriod<2) || (MAMethod<0) || (MAMethod>3) || (iApplPrice<0) || (iApplPrice>6) || (iShift<0) || (iIndent<0))
      {
      Comment("\nТрейлинг функцией TrailingByMA() невозможен из-за некорректности значений переданных ей аргументов.");
      return(0);
      } 

   double   dMA; // значение скользящего среднего с переданными параметрами
   
   // определим значение МА с переданными функции параметрами
   dMA = iMA(Symbol(),iTmFrme,iMAPeriod,iMAShift,MAMethod,iApplPrice,iShift);
         
   // если длинная позиция, и её стоплосс хуже значения среднего с отступом в iIndent пунктов, модифицируем его
   if (OrderType()==OP_BUY)
      {
      if ((OrderStopLoss()<dMA-iIndent*Point) && (dMA-iIndent*Point<Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point))
         {
         if (!OrderModify(iTicket,OrderOpenPrice(),dMA-iIndent*Point,OrderTakeProfit(),OrderExpiration()))
         Comment("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());
         }
      }
  
   // если позиция - короткая, и её стоплосс хуже (выше верхней границы канала или не определён, ==0), модифицируем его
   if (OrderType()==OP_SELL)
      {
      if (((OrderStopLoss()==0) || (OrderStopLoss()>dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point)) && (dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point>Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point))
         {
         if (!OrderModify(iTicket,OrderOpenPrice(),dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point,OrderTakeProfit(),OrderExpiration()))
         Print("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());
         }
      }
   }
Возвращает 0, хоть ты тресни!!!
 




for(int cnt=0;cnt<OrdersTotal();cnt++){
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
iTicket=OrderTicket();
Comment("\nOrderTicket = ", iTicket);
// проверяем переданные значения
if ((iTicket==0) || ((iTmFrme!=1) && (iTmFrme!=5) && (iTmFrme!=15) && (iTmFrme!=30) && (iTmFrme!=60) && (iTmFrme!=240) && (iTmFrme!=1440) && (iTmFrme!=10080) && (iTmFrme!=43200)) || (iMAPeriod<2) || (MAMethod<0) || (MAMethod>3) || (iApplPrice<0) || (iApplPrice>6) || (iShift<0) || (iIndent<0))
{Comment("\nТрейлинг функцией TrailingByMA() невозможен из-за некорректности значений переданных ей аргументов."); return(0);}
// определим значение МА с переданными функции параметрами
double dMA = iMA(Symbol(),iTmFrme,iMAPeriod,iMAShift,MAMethod,iApplPrice,iShift);// значение скользящего среднего с переданными параметрами
// если длинная позиция, и её стоплосс хуже значения среднего с отступом в iIndent пунктов, модифицируем его
if (OrderType()==OP_BUY){
if ((OrderStopLoss()<dMA-iIndent*Point) && (dMA-iIndent*Point<Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)){
if (!OrderModify(iTicket,OrderOpenPrice(),dMA-iIndent*Point,OrderTakeProfit(),OrderExpiration()))
Comment("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());}}
// если позиция - короткая, и её стоплосс хуже (выше верхней границы канала или не определён, ==0), модифицируем его
if (OrderType()==OP_SELL){
if (((OrderStopLoss()==0) || (OrderStopLoss()>dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point)) && (dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point>Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point))
{if (!OrderModify(iTicket,OrderOpenPrice(),dMA+(MarketInfo(Symbol(),MODE_SPREAD)+iIndent)*Point,OrderTakeProfit(),OrderExpiration()))
Print("Не удалось модифицировать стоплосс ордера №",OrderTicket(),". Ошибка: ",GetLastError());}}}




Swetten, пиши если нужно ещё что.

 
meta-trader2007 писал (а) >>




пиши если нужно ещё что.

Спасибо вам огромное! Только вот моя вина -- у меня там повыше цикл был, с ретурн(0), вот он спрятался и вредил потихонечку.

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

Просто каждый раз считать, к примеру, 1.3 лота ГБПУСД, а потом 2.8 ЕУРЖПИ немножко устаёшь.

 
Swetten писал (а) >>

Спасибо вам огромное! Только вот моя вина -- у меня там повыше цикл был, с ретурн(0), вот он спрятался и вредил потихонечку.

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

Просто каждый раз считать, к примеру, 1.3 лота ГБПУСД, а потом 2.8 ЕУРЖПИ немножко устаёшь.

на ГБПУСД улыбнулся. На ЕУРЖПИ слег пацтол. Извините, ничего дурного в виду не имею.

 
И ещё вопросик: есть три переменных. Любого типа. Можно ли реализовать такое условие: если две переменные из трёх соответствуют условию такому-то, то тогда делать то-то???
 
Со
Swetten писал (а) >>
И ещё вопросик: есть три переменных. Любого типа. Можно ли реализовать такое условие: если две переменные из трёх соответствуют условию такому-то, то тогда делать то-то???

bool a,b,c; //Переменные. True - удовлетворяют условию, False - не удовлетворяют.
int count; // Счетчик количества переменных, удовлетворяющих условию.
 
if(a==true)
 count++;
if(b==true)
 count++;
if(c==true)
 count++;
 
if(count>=2)
{
  //Делаем то-то
}

Советую переименовать тему в "Вопросы от Swetten" -)

 

по теме =)

гральные системы и все с нереальным КПД, хватит и 7 баксов, я ща к одному такому счету серьезно относся =) уже два дня держется

потренироватся, 200 баксов

для мтс немного по серьезнее 700 баксов

для долгосрочных мтс от 7 000 баксов

ИМХО =)

 

Вот ещё хороший вопрос: есть данные типа:

P1[a, b, шаг]

P2[c, d, шаг]

P3[e, f, шаг]

P4[g, h, шаг]

P5[i, j, шаг]

Как мне их одним чохом записать в файл, а потом считать оттуда?

Сделала вот так:

for(step = 1; step <= Dlina; stop++)
         {for(et = 1; it <= 20; et++)
             {for(i = 0; i <= min1 - 1; i++)
                 { FileWrite(file1, data0-0[i,it,stop]); 
                   FileWrite(file1, data0-1[i,it,stop]); 
                   FileWrite(file1, data0-2[i,it,stop]);
                   FileWrite(file1, data1-1[i,it,stop]); 
                   FileWrite(file1, data1-2[i,it,stop]); 
                   FileWrite(file1, data1-3[i,it,stop]);
                   FileWrite(file1, data2-0[i,it,stop]); 
                   FileWrite(file1, data2-1[i,it,stop]); 
                   FileWrite(file1, data2-2[i,it,stop]);
                   FileWrite(file1, data3-0[i,it,stop]); 
                   FileWrite(file1, data3-1[i,it,stop]); 
                   FileWrite(file1, data3-2[i,it,stop]);
                   FileWrite(file1, data4-1[i,it,stop]); 
                   FileWrite(file1, data4-2[i,it,stop]); 
                   FileWrite(file1, data4-3[i,it,stop]);
                 }
             }
         }
Всё замечательно пишется, только вот внутри ахинея какая-то. В учебнике вообще сам лукавый ногу сломит! И как писать и считывать данные вроде таблицы? И массивы вроде этого? И вообще? У КимаIV в библиотеку заглядывала.
 
Swetten писал (а) >>

Спасибо вам огромное! Только вот моя вина -- у меня там повыше цикл был, с ретурн(0), вот он спрятался и вредил потихонечку.

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

Просто каждый раз считать, к примеру, 1.3 лота ГБПУСД, а потом 2.8 ЕУРЖПИ немножко устаёшь.

Есть Калькулятор трейдуна :)
Причина обращения: