0
А коробку Дарвакса на этот фон добавить можешь?
avatar

axe44

  • 4 августа 2019, 06:18
0
Закрывай тему. Сколько можно себя жалеть?
avatar

axe44

  • 4 августа 2019, 06:13
0
А так же нужны три вещи: фото стратегии, поручитель из чата и благосклонность *think*  Андрея
avatar

axe44

  • 27 июля 2019, 06:21
0
Так как на тему не подписан, просьба прежде чем комментировать, нажимать кнопку «Ответить».
Сначала протестирую, потом посмотрю какие варианты выгодно смотртся
avatar

axe44

  • 21 июля 2019, 12:45
0
Пожалуй для себя что-то похожее сделаю. :) 
avatar

axe44

  • 21 июля 2019, 09:28
0
По своей сути доказал «Стратегию черепахи» которая наращивает позицию по движению, а так же для себя что сама по себе она не очень.
Троли, чего молчим?
avatar

axe44

  • 20 июля 2019, 15:26
0
График получается вот так.

В конце увеличенные объёмы в связи с окончанием тестирования и закрытием всех ордеров.
Сама по себе идея открытия двух ордеров и их частичное закрытие по движению цены убыточных работает, но чего то не хватает.
avatar

axe44

  • 20 июля 2019, 15:24
+1
Рабочий код

//+------------------------------------------------------------------+
//| Удаление текущих ордеров                                         |
//+------------------------------------------------------------------+  
void ChastClose(int type=-1)
{   int   result;
    double price;
    
   int    error,total=OrdersTotal();
 for( i=0; i<total; i++)
     {if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
      
      if(OrderType()==type )
        {
            if(OrderType()==OP_BUY) price=Bid;
            else            price=Ask;
            double MinLot=MarketInfo(Symbol(),MODE_MINLOT);
            lot=NormalizeDouble(OrderLots()*Proc/100,2);
            if (lot<MinLot) lot=MinLot;
            result=OrderClose(OrderTicket(),lot,price,3,CLR_NONE);
            if(result!=TRUE) { error=GetLastError(); Print("Ошибка = ",error); }
            else error=0;
            if(error==135) RefreshRates();
            else break;
           
        }
     }
   else Print( "Ошибка во время выбора ордера ", GetLastError());}
}  

Для кого это пишу не знаю
avatar

axe44

  • 20 июля 2019, 14:28
+1

//+------------------------------------------------------------------+
//| Удаление текущих ордеров                                         |
//+------------------------------------------------------------------+  
void ChastClose(int type=-1)
{   int   result;
    double price;
    
   int    error,total=OrdersTotal();
 for( i=0; i<total; i++)
     {if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
      
      if(OrderType()==type )
        {
         while(true)
           {
            if(OrderType()==OP_BUY) price=Bid;
            else            price=Ask;
            double MinLot=MarketInfo(Symbol(),MODE_MINLOT);
            if (NormalizeDouble(OrderLots()*Proc/100,Digits)<MinLot) lot=MinLot;
            else lot=NormalizeDouble(OrderLots()*Proc/100,Digits);
            result=OrderClose(OrderTicket(),lot,price,3,CLR_NONE);
            if(result!=TRUE) { error=GetLastError(); Print("Ошибка = ",error); }
            else error=0;
            if(error==135) RefreshRates();
            else break;
           }
        }
     }
   else Print( "Ошибка во время выбора ордера ", GetLastError());}
}  
  
Окончательная версия.

Всем спасибо *drinks* 
avatar

axe44

  • 20 июля 2019, 01:10
0
Теперь осталось сделать две вещи: Собрать советника с защитой от гепов и от всяких там брекситов…
Может и странный вопрос, но может кто поможет?
avatar

axe44

  • 19 июля 2019, 22:43
0
Закончил скрипт.
Теперь это выглядит так:

//+------------------------------------------------------------------+
//| Удаление текущих ордеров                                         |
//+------------------------------------------------------------------+  
bool ChastClose(int type=-1)
{   bool   result;
   double price;
   int    cmd,error,total=OrdersTotal();
 for(int i=0; i<total; i++)
     {if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {if(OrderSymbol()!=Symbol()||OrderType()!=OP_BUY||OrderType()!=OP_SELL)continue;
      cmd=OrderType();
      if(cmd==type )
        {
         while(true)
           {
            if(cmd==OP_BUY) price=Bid;
            else            price=Ask;
            result=OrderClose(OrderTicket(),NormalizeDouble(OrderLots()*Proc/100,Digits),price,3,CLR_NONE);
            if(result!=TRUE) { error=GetLastError(); Print("Ошибка = ",error); }
            else error=0;
            if(error==135) RefreshRates();
            else break;
           }
        }
     }
   else Print( "Ошибка во время выбора ордера ", GetLastError());}
return(result);}  
avatar

axe44

  • 19 июля 2019, 22:40
0
Ещё очень большой вопрос как среагирует такой вот брокер если минимальный лот может быть 0.1, был 0.11, а закрыли 0.1, то есть осталось 0.01
avatar

axe44

  • 17 июля 2019, 11:04
0
Есть две ошибки
Предлагаю исправить:
Строчка 98 —
if (OrderSymbol()==Symbol() && (OMN==Tipp || Tipp==-1))

На
if (OrderSymbol()==Symbol() && (OMN==Tipp))
. Иначе в нет зависимости от того кем выставлен ордер человеком или роботом
Ну, и чуда не произошло. Ты то же напоролся на те же грабли что и я.
Сторчка 221 не работает.
result=OrderClose(OrderTicket(),NormalizeDouble(OrderLots()*Proc/100,2),price,3,CLR_NONE);

Есть такие брокеры берущие котировки с биржи «Санкт-Петербург». Так у них в правиле минимальный лот 0.1, а шаг 0.01.
Если сделать нормализацию выражения до 2 то ошибка, если до одного — то то же ошибка. Большой соблазн поставить Digits, но с ним та же беда.
Оптимальный вариант довести минимальное значение до
MarketInfo(Symbol(),MODE_MINLOT)
, но тогда нужно найти этот самый лот на этом самом ордере.
Короче завал…
avatar

axe44

  • 17 июля 2019, 10:53
0
Спасибо. Чего хочешь в замен?
avatar

axe44

  • 15 июля 2019, 22:06
0
Ну, вечером в воскресенье я если что то и делаю то только если очень хочется.
avatar

axe44

  • 14 июля 2019, 17:15
0
Мыслей как закрывать ордера нету у двоих *drinks* 
avatar

axe44

  • 14 июля 2019, 15:55
0
Давай того что с ноликом, с палочкой для Окси оставим…
Эмили серьезно то эту ласточку оптимизирую:
avatar

axe44

  • 14 июля 2019, 12:50
0
2 маркет ордера в рынке. Нужно один закрыть на 10%, а второй не трогать
avatar

axe44

  • 14 июля 2019, 12:44
0
Похоже наспамил. Извините
avatar

axe44

  • 14 июля 2019, 12:05
0
Вот сколько живу и замечаю что классика не стареет…


«Соседка, перестань срамиться,-
Ей шавка говорит,- тебе ль с Слоном возиться?
Смотри, уж ты хрипишь, а он себе идет
Вперед
И лаю твоего совсем не примечает».-
«Эх, эх! — ей Моська отвечает,-
Вот то-то мне и духу придает,
Что я, совсем без драки,
Могу попасть в большие забияки.
Пускай же говорят собаки:
»Ай, Моська! знать она сильна,
Что лает на Слона!"
avatar

axe44

  • 9 июля 2019, 05:51