Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 799

ilham_fn:
помогите с этой задачкой
№5380

10 мудрецов сели в круг и крепко зажмурились. После этого султан надел каждому из них на голову колпак:четверо мудрецов оказались в чёрных колпаках,трое-в белых ,двое-в красных и один в синем. Открыв глаза,каждый из мудрецов увидел цвета колпаков у всех остальных,но не у себя. Совещаться друг с другом мудрецы не могут,но знают что всего у султана было 14 колпаков: 5 чёрных, 4 белых, 3 красных и 2 синих.

сможет ли кто-нибудь из мудрецов определить цвет своего колпака
Не уверен, что люди под колпаком способны соображать, тем более при диктаторском режиме! <:||
borilunad:
Не уверен, что люди под колпаком способны соображать, тем более при диктаторском режиме! <:||
Как раз, всё наоборот. Это при демократии баранов из народа делают. Так управлять проще. При диктаторских режимах всё в порядке. Расцвет науки и искуства. Настоящая свобода.
Zhunko:
Как раз, всё наоборот. Это при демократии баранов из народа делают. Так управлять проще. При диктаторских режимах всё в порядке. Расцвет науки и искуства. Настоящая свобода.
Конечно, всё наоборот! Надо сесть на колпак, и всем будет счастье!

Профи, опять обращаюсь к вам.

InternetOpenA(IOAgent, IOAccess, "0", "0", 0);

возвращает значение = 13369348

InternetOpenUrlA(IOSes, "http://www.site.ru", "0", 0, -2080374528, 0);


возвращает значение = 13369356

и далее

InternetReadFile(hURL,cBuffer,120,dwBytesRead);


возращает cBuffer= <result>OK:381;1417544100;0;0;0;0;0;0;0;0;0;0;0;0;9;52</result>0

                                                                                                                                                                      
а Уникодные W функции возвращают

InternetOpenW(IOAgent, IOAccess, "0", "0", 0);


возвращает значение = 13369400

InternetOpenUrlW(IOSes, "http://www.site.ru", "", 0, -2080374528, 0);


возвращает значение = 13369408
                                                                            
и далее

InternetReadFile(hURL,cBuffer,120,dwBytesRead);


возращает cBuffer=??????????????????????????????????                                                                                                                                          

Как с этим бороться?

-------------------------------------------------------------> краткая история:

Здравствуйте вы писали мне ответ в ветке. Еще раз повторюсь.

Вопрос такой в старом билде 509 была такая функция

#import "wininet.dll"
   int InternetOpenA(string a0, int a1, string a2, string a3, int a4);
   int InternetOpenUrlA(int a0, string a1, string a2, int a3, int a4, int a5);
   int InternetReadFile(int a0, string a1, int a2, int& a3[]);
   int InternetCloseHandle(int a0);

int function1inet() {
   int IOURez;
   bool Rez = TRUE;
   string IOAgent= "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)";
   bool IOAccess = FALSE;
   int IOSes = InternetOpenA(IOAgent, IOAccess, "0", "0", 0);
   if (IOSes != 0) {
      IOURez = InternetOpenUrlA(IOSes, "http://www.site.ru", "0", 0, -2080374528, 0);
      if (IOURez == 0) Rez = FALSE;
      else InternetCloseHandle(IOURez);
      InternetCloseHandle(IOSes);
   } else Rez = FALSE;
   return (Rez);
}

Поскольку в новых биладах строки теперь представляют собой последовательность символов Unicode и теперь надо использовать InternetOpenW и InternetOpenUrlW.

yosuf:
Да, до меня дошло, поскольку это ПАММ-счет, при выбытии инвестора списывается его доля и из открытых позиций путем их частичного закрытия. Это приводит, к сожалению, к ухудшению статистики сигнала на базе подобных счетов.
Ну так отредактируйте оферты свои, позвольте выводить средства менее часто.
AlexeyVik:
Это другой вариант. Ещё бывает когда контрагента с таким или большим объёмом нет, то ордер закрывается или открывается по частям.
Если ECN
Как определить минимально допустимый стоп - лосс? Пробовал MarketInfo MODE_STOPLEVEL, пишет 0.
CJIeCaPb:
Как определить минимально допустимый стоп - лосс? Пробовал MarketInfo MODE_STOPLEVEL, пишет 0.
Тогда двойной спред.

Правильно ли будет перевод прибыли из денежных средств в пунктах?

 

(OrderProfit()+OrderCommission()+OrderSwap())/OrderLots()*MarketInfo(Symbol(),MODE_TICKVALUE)*(MarketInfo(Symbol(),MODE_POINT)/MarketInfo(Symbol(),MODE_TICKSIZE))
Добрый день! Помогите разобраться в функциях, и как работает, заранее Спасибо.
//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Модификация одного предварительно выбранного ордера.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    pp - цена установки ордера                                              |
//|    sl - ценовой уровень стопа                                              |
//|    tp - ценовой уровень тейка                                              |
//|    ex - дата истечения                                                     |
//+----------------------------------------------------------------------------+
void ModifyOrder(double pp=-1,double sl=0,double tp=0,datetime ex=0) 
  {
   bool   fm;
   color  cl=IIFc(OrderType()==OP_BUY
                  || OrderType()==OP_BUYLIMIT
                  || OrderType()==OP_BUYSTOP, clModifyBuy, clModifySell);
   double op,pa,pb,os,ot;
   int    dg=MarketInfo(OrderSymbol(),MODE_DIGITS),er,it;

   if(pp<=0) pp=OrderOpenPrice();
   if(sl<0 ) sl=OrderStopLoss();
   if(tp<0 ) tp=OrderTakeProfit();

   pp=NormalizeDouble(pp, dg);
   sl=NormalizeDouble(sl, dg);
   tp=NormalizeDouble(tp, dg);
   op=NormalizeDouble(OrderOpenPrice() , dg);
   os=NormalizeDouble(OrderStopLoss()  , dg);
   ot=NormalizeDouble(OrderTakeProfit(), dg);

   if(pp!=op || sl!=os || tp!=ot) 
     {
      for(it=1; it<=NumberOfTry; it++) 
        {
         if(!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
         while(!IsTradeAllowed()) Sleep(5000);
         RefreshRates();
         fm=OrderModify(OrderTicket(),pp,sl,tp,ex,cl);
         if(fm) 
           {
            if(UseSound) PlaySound(SoundSuccess); break;
              } else {
            er=GetLastError();
            if(UseSound) PlaySound(SoundError);
            pa=MarketInfo(OrderSymbol(), MODE_ASK);
            pb=MarketInfo(OrderSymbol(), MODE_BID);
            Print("Error(",er,") modifying order: ",ErrorDescription(er),", try ",it);
            Print("Ask=",pa,"  Bid=",pb,"  sy=",OrderSymbol(),
                  "  op="+GetNameOP(OrderType()),"  pp=",pp,"  sl=",sl,"  tp=",tp);
            Sleep(1000*10);
           }
        }
     }
  }
//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Сопровождение позиций простым тралом                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="",int op=-1,int mn=-1) 
  {
   double po,pp;
   int    i,k=OrdersTotal();

   if(sy==NULL) 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(pp-OrderOpenPrice()>=TrailingStart*po) 
                    {
                     if(OrderStopLoss()<pp-(TStop_Buy+TrailingStep-1)*po) 
                       {
                        ModifyOrder(-1,pp-TStop_Buy*po,-1);
                       }
                    }
                 }
               if(OrderType()==OP_SELL) 
                 {
                  pp=MarketInfo(OrderSymbol(),MODE_ASK);
                  if(OrderOpenPrice()-pp>=TrailingStart*po) 
                    {
                     if(OrderStopLoss()>pp+(TStop_Sell+TrailingStep-1)*po || OrderStopLoss()==0) 
                       {
                        ModifyOrder(-1,pp+TStop_Sell*po,-1);
                       }
                    }
                 }
              }
           }
        }
     }
  }
//+----------------------------------------------------------------------------+