关闭职位。开启指示信号。 - 页 8

 
Lukyanov:

净利润 6157.73


谢尔盖,6,000至9,000笔交易的利润为6000美元。

1.什么是法务部?

2.每天1,500次交易--哪个经纪人能承受得住?

 

大家晚上好!还出现了另一个问题。请告诉我你是否知道如何写出表达式

hann = iCustom(.... .... .... ) for indicator

至少在其最基本的形式上--设置Lb参数和条数...

/+------------------------------------------------------------------+
//|                                                          SSL.mq4 |
//|                                                          Kalenzo |
//|                                      bartlomiej.gorski@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Kalenzo"
#property link      "bartlomiej.gorski@gmail.com"
//----
#property indicator_buffers 1
#property indicator_color1 Blue
extern int Lb=10;
double ssl[],Hld,Hlv;
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexBuffer(0,ssl);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit() {   return(0);  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   for(int i=Bars-Lb;i>=0;i--)     {
      if(Close[i]>iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1))
         Hld=1;
      else        {
         if(Close[i]<iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW,i+1))
            Hld=-1;
         else
            Hld=0;
        }
      if(Hld!=0)
         Hlv=Hld;
      if(Hlv==-1)
         ssl[i]=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_HIGH,i+1);
      else
         ssl[i]=iMA(Symbol(),0,Lb,0,MODE_SMA,PRICE_LOW,i+1);
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
以下是图表 -
 
rid:

大家晚上好!还出现了另一个问题。请帮助,谁能--写一个表达式

hann =iCustom(.... .... .... ) for indicator

iCustom( Symbol(), Period(), "SSL", indLb, 0, bar );
 

谢谢你,KOMPOST.

 

下午好。请告知。

在mt4中安装了一个Force-index指标。它是双极的,中线在t.0。

以下是其代码。

#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
 
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- input parameters
extern int ExtForcePeriod=13;
extern int ExtForceMAMethod=0;
extern int ExtForceAppliedPrice=0;
//---- buffers
double ExtForceBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string sShortName;
   SetIndexBuffer(0, ExtForceBuffer);
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
//---- name for DataWindow and indicator subwindow label
   sShortName="Force("+ ExtForcePeriod+")";
   IndicatorShortName( sShortName);
   SetIndexLabel(0, sShortName);
//---- first values aren't drawn
   SetIndexDrawBegin(0, ExtForcePeriod);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Force Index indicator                                            |
//+------------------------------------------------------------------+
int start()
  {
   int nLimit;
   int nCountedBars=IndicatorCounted();
//---- insufficient data
   if(Bars<= ExtForcePeriod) return(0);
//---- last counted bar will be recounted
   if( nCountedBars> ExtForcePeriod) nCountedBars--;
   nLimit=Bars- nCountedBars;
//---- Force Index counted
   for(int i=0; i< nLimit; i++)
      ExtForceBuffer[ i]=Volume[ i]*
(iMA(NULL,0, ExtForcePeriod,0, ExtForceMAMethod, ExtForceAppliedPrice, i)-
iMA(NULL,0, ExtForcePeriod,0, ExtForceMAMethod, ExtForceAppliedPrice, i+1));
//---- done
   return(0);
  }


然而。我的任务是在正区(或负区,不重要)画出指标的全部内容。

要以编程方式进行。

即不是像这样:double force=(iForce+10),而是以编程的方式进行!

请告知谁知道为此目的应在代码中添加(插入)什么?

 
rid >> :

然而。我需要整个指标被画在正数(或负数,不管是什么)区域。

请告诉我,谁知道,为此我应该在代码中添加什么?

IMHO,sigmoid wrapper是你需要的。缓冲区的数值将从0到1。

for(int i=0; i< nLimit; i++)
      ExtForceBuffer[ i]=Volume[ i]*
(iMA(NULL,0, ExtForcePeriod,0, ExtForceMAMethod, ExtForceAppliedPrice, i)-
iMA(NULL,0, ExtForcePeriod,0, ExtForceMAMethod, ExtForceAppliedPrice, i+1));

//заменяем на 

for(int i=0; i< nLimit; i++)
{
         ExtForceBuffer[ i]=Volume[ i]*
   (iMA(NULL,0, ExtForcePeriod,0, ExtForceMAMethod, ExtForceAppliedPrice, i)-
   iMA(NULL,0, ExtForcePeriod,0, ExtForceMAMethod, ExtForceAppliedPrice, i+1));

   ExtForceBuffer[ i] = Sigmoid( ExtForceBuffer[ i]);
}

//...

double Sigmoid(double x)
{
   double value = MathExp( x);
   return ( value/(1 + value))
}
 

谢谢你,TheXpert !我会试一试的。

它成功了!

 

大家下午好。我想做我的第一个EA,但我不知道如何写代码。交易是在MA上开启的。如果价格从上方触及MA,那么买入。如果它触及下方,那么就是卖出。应考虑MA的坡度。MAs的斜率和订单的开口应该是单向的。谢谢你。

 
Shu писал(а)>>

研究是迷人的!它甚至对大脑和实验都有好处。

所有的自行车和摩托车都已经在我们之前被(删除线)发明了--把所有的订单放到你自己的数组里(也许不止一个),然后对它做任何你喜欢的操作。按任何标准排序,或删除它(票据是你的朋友),或修改它(很容易对止损/获利进行修改,或创建新订单。

ps(还有一件事)。如果你决定认真对待你的创作,请记住,在任何一秒(毫秒),与你的经纪公司的连接都可能断开。理想的解决方案是使专家顾问能够在紧急停止/关闭后看到关闭某些订单的必要性(在这种情况下),并关闭它们。

然而,大多数以P.C.形式公开销售的"圣杯"。- 是类似于玩具一样的...

关于数组,我不太明白。但是第二个想法--如果专家错过了关闭的信号,他仍然能够掌握关闭的必要性,我喜欢这个想法。但如何做到这一点...

 

下午。

EA在距离=Distance的情况下,根据价格的变化下达限价订单。

我需要在价格向上移动时删除过多的(最远的)订单。

我已经做到了。但由于某些原因,它的效果非常不正确!第一个订单被正常删除。那么,相反,最接近价格的就会被删除!然后他们停止或 "突然 "被删除,日志产生错误4108(未知票)。然后在一段时间内,它们被正常删除。

我想在某个地方说过,正确安排订单的搜索很重要。

//жжжжж Удаление лишних байлим ордеров жжжжжжжжж
if( NumberOfOrders(NULL,OP_BUYLIMIT, MAGIC)> КоличествоОрдеров  )  {
    //если ордеров больше заданного значения 
//for (int z = OrdersTotal() - 1; z >= 0; z -- )  {//перебираем с "конца"
  for ( int z=0;    z<OrdersTotal();        z++)  {//перебираем с начала         
  if (OrderSelect( z, SELECT_BY_TICKET, MODE_TRADES))          {//перебираем по тикету           
   if (OrderSymbol()==Symbol()&& OrderType() == OP_BUYLIMIT) {//выбираем байлимиты   
     if ( OrderOpenPrice() <(Ask-( КоличествоОрдеров* Дистанция)*Point) ) {
     //если расстояние от тек. цены больше заданного
   
   OrderDelete(OrderTicket(),Yellow);   //  return(0);    //удаляем самый дальний
            }}}}} 

然而。无论订单检索是 "从终点 "还是从起点运行。其结果是不正确的。

这个代码似乎是最简单的一个!

这里会有什么问题呢?请指教!