[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 19

 
Ereke:
祝贺你!

我们要祝贺你。虽然在空中打一枪并不伤人。
 
Vinin:

我们要祝贺你。虽然在空中打一枪并不伤人。
维克多,是你的Skype坏了还是你的连接坏了?ZZ是怎么回事?
 
2011.01.24 17:18:44 TestGenerator: unmatched data error (volume limit 971 at 2011.01.19 10:00 exceeded)
你能告诉我这是哪种错误吗?在批量测试期间的日志中,但订单打开。
 
artmedia70:
维克多,是你的Skype坏了还是你的连接坏了?ZZ是什么?

是的,我在说也许我应该做一个特殊的斩击器。不是我的Skype要死了。我让你穿绿衣服。
 
r.ig.h:
2011.01.24 17:18:44 TestGenerator: unmatched data error (volume limit 971 at 2011.01.19 10:00 exceeded)
你能告诉我这是哪种错误吗?在批量测试期间的日志中,但订单打开。

没有历史或历史中存在错误
 
帮助脚本调整,将意味着立即打开交易,以当前的 市场价格。一个切特,我已经蒸蒸日上了 距离从鱼的5个点是不满意的,所以这将是至少与一个偏转的交换。
附加的文件:
 

晚上好!

我似乎无法理解

移位 - 从指标缓冲区收到的数值的索引(相对于当前条形图,向后移动指定的周期数)。

分形指标 中。如果我没有想错的话--指标显示的是五个条形中的极值,条件是前两个条形和后两个条形(在分形向上的情况下)的极值较小(尽管分形的 "小鸟 "在图表上显示的也是这五个条形中最左边的极值=极值......,而不是比它小)。那么,为什么要转移呢?如果移位不等于3而等于2或5,将显示什么?

 

我做了这个代码,在MA突破后的第一个分形突破后进入市场。但在测试时,它并没有在任何地方打开交易,尽管它似乎应该这样做。我不明白什么是错的?在真实模式下(在M1上检查时,我无法找到错误)。

 extern int Period_MA = 5,                 // Период расчётной МА
            PERIOD=1,                      // Период текущего графика (таймфрейм)
            MODE=3,                        // Метод усреднения из методов скользящего среднего
            PRICE_TYPE=0,                  // Используемая цена из ценовых констант
            Прибыль=10,
            Ограничение=55;

 double 
        upfractal,
        dwfractal,
        SL[10001]={0,,10000},
        TP[10001]={0,,10000};
        
 bool   Двверх=false,
        Дввниз=false,
        Сделкавверх=false,
        Сделкавниз=false;
        
  int   A,                             // Переменная массива вверх
        B,                             // Переменная массива вниз
        BarTime,                       // Время текущего бара
        ticketup,                      // Ордер вверх
        ticketdown,                    // Ордер вниз
        Tвверх,                        // Время сделки вверх
        Tвниз;                         // Время сделки вниз;
        
 color вверх = SpringGreen,           // Цвет сделки вверх
       вниз = Red;                    // Цвет сделки вниз       
        
int start()
  {
  
  string Symb=Symbol();         // Финанс. инструмент
  
  double  Lot=0.01;              // Лот
  
    if(BarTime!=Time[0])           // Условие для того, чтобы программа считала только на начале бара, а не на каждом тике
      {
        double MA_1 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 1);
        double MA_2 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 2);
        double MA_3 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 3);
        double MA_4 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 4);
        double MA_5 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 5);
        double MA_6 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 6);
        double MA_7 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 7); 
        double MA_8 = iMA(Symbol(),PERIOD,Period_MA,0,MODE, PRICE_TYPE, 8); 
               
//--------------------------------------------------------------------
        if(NormalizeDouble(MA_8,Digits)>NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_7,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_6,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_5,Digits)>=NormalizeDouble(MA_2,Digits) 
        && NormalizeDouble(MA_3,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_4,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_2,Digits)<NormalizeDouble(MA_1,Digits)) // Перелом вверх
          {
            Двверх=true;
            Alert("Двверх");
            Дввниз=false;
            Сделкавниз=false;
            dwfractal=0;
            upfractal=0;
          }
        if(Двверх==true)
          {    
            
                upfractal=iFractals(Symbol(), PERIOD, MODE_UPPER, 3);
                Alert("upfractal вначале = ",upfractal);
                
              
          }
        if(NormalizeDouble(MA_8,Digits)<NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_7,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_6,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_5,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_3,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_4,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_2,Digits)>NormalizeDouble(MA_1,Digits)) // Перелом вниз
          {
            Дввниз=true;
            Двверх=false;
            Alert("Дввниз");
            Сделкавверх=false;
            upfractal=0;
            dwfractal=0;
          }
        if(Дввниз==true)
          {    
            
                dwfractal=iFractals(Symbol(),PERIOD, MODE_LOWER, 3);
                Alert("dwfractal вначале = ",dwfractal);
              
          }    
          BarTime=Time[0];
      }else                                                                  // На каждый тик
        { 
          Alert("upfractal на тиках = ",upfractal,", Bid = ", Bid);
          if (Двверх==true && upfractal !=0 && Bid > NormalizeDouble(upfractal+1*Point,Digits) && Tвверх!=Time[0] && Сделкавверх==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
            {
               Alert("upfractal = ",upfractal, ", Ask = ",Ask);
               Tвверх=Time[0];
               while(true)                                                  // Цикл открытия орд.
                  {
                    A++;
                    SL[A]=Bid-Ограничение*Point;
                    TP[A]=Bid+7*Point+Прибыль*Point;
                    ticketup=OrderSend(Symb, OP_BUY, Lot, Ask,0, SL[A], TP[A],NULL,A,0,вверх); // Ордер вверх
                        int Error=GetLastError();
                        switch(Error)                                      // Преодолимые ошибки
                          {
                           case 6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
                           RefreshRates();                                 // Обновим данные
                           Sleep(1);                                       // Задержка в цикле до нового тика
                         continue;                                         // На след. итерацию
                          }
                         break;                                            // Выход из цикла
                   }
                    Сделкавверх=true; 
            }
            Alert("dwfractal на тиках = ",dwfractal,", Bid = ", Bid);
          if (Дввниз==true && dwfractal !=0 && Bid < NormalizeDouble(dwfractal-1*Point,Digits) && Tвниз!=Time[0] && Сделкавниз==false) // Открытие ордеров при пробитии последнего (свежайшего) фрактала }
            {
               Alert("dwfractal = ",dwfractal, ", Bid = ",Bid);
               Tвниз=Time[0];
               while(true)                                  // Цикл открытия орд.
                  {
                    B++;
                    SL[B]=Bid+Ограничение*Point;
                    TP[B]=Bid-4*Point-Прибыль*Point;
                    ticketdown=OrderSend(Symb, OP_SELL, Lot, Bid,0, SL[B], TP[B],NULL,B,0,вниз); // Ордер вниз
                        Error=GetLastError();
                        switch(Error)                             // Преодолимые ошибки
                          {
                           case 6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
                           RefreshRates();                        // Обновим данные
                           Sleep(1);                              // Задержка в цикле до нового тика
                         continue;                                // На след. итерацию
                          }
                         break;                                    // Выход из цикла
                   }
                   Сделкавниз=true;
            } 
        }
//----
   return(0);
  }
//+------------------------------------------------------------------+
而在它在测试器中发挥作用之前,用它来进行优化是没有意义的,因为有错误。什么是错误......?
 

改编自一个单独的主题

Leonid82 24.01.2011 19:51

你好,我有一个适用于欧元兑美元的专家顾问。例如,我怎样才能在GBPUSD上获得High[1]?

谢谢你的帮助。

 

Leonid82, High[1]是第一支蜡烛的高价。要得到它,你只需要制作这个脚本。而这个价格不是从专家顾问那里获得,而是从终端获得。

//+------------------------------------------------------------------+
//|                 Старт работы скрипта                             |
//+------------------------------------------------------------------+
int start(){
  Alert("High[",i,"] = ",High[i]);
        return(0);
}