任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 292

 

伙计们,请建议一个好的DC用于EA交易?

 
你想在真实账户 上运行什么样的专家顾问?
 
Profitov:
请问是哪种专家顾问?"马丁 "告诉我,你想在真实账户上使用的下一个专家顾问是什么? 。

我不知道是什么样的 "马丁"))我不知道 "马丁"。 不,还没有用于真实账户,没有用于演示,但我想使用同一经纪公司的演示账户,以后可能用于真实账户。

 
SpikeOne:

伙计们,谁能描述一下发生了什么,并说明在+中关闭订单的地方,并打开一个新的系列。

安德烈,没有冒犯的意思,但这种荒唐的事应该放在年鉴里!我不知道该怎么办。
 

向大家问好!我在寻求帮助,以解决一个有趣的问题。我有一个EA,它的特点是,在获得利润后,从1到4的下一个交易都是以止损 方式关闭,然后再获利。专家顾问根据指标信号开启交易。为了排除获利后的盈利交易,应该跳过指标产生的信号,即在获得利润后不关闭交易(1、2、3、4)。Sig功能可用于此目的。然而,我认为我写错了这个函数,因为EA没有用它开单,没有它也能很好地工作。请告诉聪明的人们,我在哪里犯了错误。

是的,信号是盈利后的信号数,pynkt是盈利大小,以点为单位。

我将感谢您的帮助。

 
void CheckForOpen()
{
   int ticket, STOPLEVEL;
   double Price, SL, TP; 
   STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);


   double MA1Low = NormalizeDouble (iMA(NULL,0,MA_Period_2,MA_Shift_2,MA_Method_2,0,1), Digits); 
   double MA2High = NormalizeDouble (iMA(NULL,0,MA_Period_2,MA_Shift_2,MA_Method_2,1,1), Digits);
   
 
  
   if(Volume[0]>1) return;

    // продажа
   if (Open[1]>Close[1] && Open[1] > MA1Low && Close[1] < MA1Low)
   
{
      if(Pro(1,100))

   {
       ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,"Pattern_1",1000,0,Red);
      return;
    }
   
  }  
//---- buy conditions
   // покупка
  if (Open[1]<Close[1] && Open[1] < MA2High && Close[1] > MA2High)
 
 { 
   if(Pro(1,100))
   {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"Pattern_1",1000,0,Blue);
      return;
   }       
   }
}
 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool Sig(int signal,int pynkt)
 {
  static int cnt = 0;
  static datetime tm;
  if(Time[0] == tm) return(false);
  tm = Time[0];
  if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY) == true)
   {
    cnt = cnt + 1;
    if(OrderType() == OP_BUY && OrderClosePrice() - OrderOpenPrice() < pynkt*Point) cnt = 0;
    if(OrderType() == OP_SELL && OrderOpenPrice() - OrderClosePrice() < pynkt*Point) cnt = 0;
    if(cnt >= signal) return(true);
   }
  return(false);
 }
//+------------------------------------------------------------------+
 
帮帮我吧,EA无法编译
//ПАРАМЕТРЫ ОТКРЫТИЯ ДЛИННОЙ ПОЗИЦИИ

if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)>100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)>-100 
{
if((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-1))
{ 
Opn_B=true;
//Cls_S=true;
}
}
 //ПАРАМЕТРЫ ОТКРЫТИЯ короткой ПОЗИЦИИ    
if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100
{
if((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-1))
{
Opn_S=true; 
//Cls_B=true;   
}  
}


if(Tip==0){
           if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(SL<Bid-Point*TrailingStop)
                    {
                     OrderModify(Ticket,OrderOpenPrice(),Bid-Point*TrailingStop,TP,0,Green);
                     //return(0);
                    }
                 }
              }
}

if(Tip==1){
           if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if(SL>Ask+Point*TrailingStop)
                    {
                     OrderModify(Ticket,OrderOpenPrice(),Ask+Point*TrailingStop,TP,0,Red);
                    // return(0);
                    }
                 }
              }
}


   // Закрытие ордеров
   while(true)                                  // Цикл закрытия орд.
     {
//длинной
//if (iRSI(NULL,0,14,PRICE_CLOSE,0)<30&&iRSI(NULL,0,14,PRICE_CLOSE,1)>30){
 if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100 {  
      if (Tip==0)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose(Ticket,Lot,Bid,2);      // Закрытие Buy
         if (Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ",Ticket);
            break;                              // Выход из цикла закр
           }
                           
            
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
        }

// короткой       
if (Close[NULL]){
      if (Tip==1)                // Открыт ордер Sell..
        {                                       // и есть критерий закр
         Alert("Попытка закрыть Sell ",Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose(Ticket,Lot,Ask,2);      // Закрытие Sell
         if (Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Sell ",Ticket);
            break;                              // Выход из цикла закр
           }
                  
           
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
        }
      break;                                    // Выход из while
     }

 
niformalka:
帮助我,EA不能编译。

...你是根据什么语言规则来雕刻的?比如说。

if(iCCI(Symbol,0,14,PRICE_TYPICAL,0)>100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)>-100 
{

:)

 
niformalka:
帮助我,EA无法编译。

双击标志着编译错误的红色圆圈,你会看到左边有同样的圆圈,在那里寻找错误的行你从这里看不到你的圈子!

并删除你的帖子,因为我用你的床单删除了我的帖子!

 
SpikeOne:

你有2014年
希望得到一个全面的答案!要让这个品牌成为最畅销的产品。
 
niformalka:

伙计们,帮我找到一个错误,EA不能编译,我已经绞尽脑汁了,估计是多/空头开仓和平仓线的错误。


//开出长仓参数

如果(iCCI(Symbol,0,14,PRICE_TYPICAL,0)>100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)>100
{
如果((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-))
{
Opn_B=true。
//Cls_S=true。
}
}
//简短的职位开放参数
如果(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100)
{
如果((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-))
{
Opn_S=true。
//Cls_B=true。
}
}


如果(Tip==0){
如果(TrailingStop>0)
{
如果(Bid-OrderOpenPrice()>Point*TrailingStop)
{
如果(SL<Bid-Point*TrailingStop)
{
OrderModify(Ticket,OrderOpenPrice(),Bid-Point*TrailingStop,TP,0,Green)。
//返回(0)。
}
}
}
}

如果(Tip==1){
如果(TrailingStop>0)
{
如果((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
如果(SL>Ask+Point*TrailingStop)
{
OrderModify(Ticket,OrderOpenPrice(), Ask+Point*TrailingStop,TP,0,Red);
// { return(0);
}
}
}
}


// 关闭订单
while(true) // 关闭订单循环
{
//长
//if(iRSI(NULL,0,14,PRICE_CLOSE,0)<30&iRSI(NULL,0,14,PRICE_CLOSE,1)>30){
如果(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<-100 {
如果(Tip==0) //打开买入订单
{ //还有一个接近的标准
Alert("Trying to close Buy",Ticket,". waiting for reply...);
RefreshRates(); // 刷新数据
Ans=OrderClose(Ticket,Lot,Bid,2); // Closed Buy
如果(Ans==true) //成功了 :)
{
警报("关闭买入订单",Ticket;)
break; // 从闭环中退出
}


如果(Fun_Error(GetLastError())==1) //错误处理
continue; // retry
return; // 从start()退出。
}
}

// 很短
如果(Close[NULL]){
if (Tip==1) //打开卖出订单。
{ // 有一个接近的标准
Alert("Attempting to close Sell",Ticket," ;)
RefreshRates(); // 刷新数据
Ans=OrderClose(Ticket,Lot,Ask,2); // 收盘卖出
如果(Ans==true) // 成功了 :)
{
提醒("卖出订单关闭",Ticket;)
break; // 从闭环中退出
}


如果(Fun_Error(GetLastError())==1) //错误处理
continue; // retry
return; // 从start()退出。
}
}
break; // Exit while
}



编译器唯一不能做的事情是声明变量。