[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 180

 
MQL414:

如果((Ask>=OrderTakeProfit())&& (OrderType() == OP_BUY)){x=1;}

如果((Bid<=OrderTakeProfit())&& (OrderType() == OP_SELL)){y=1;}

if(Hour()==00:00) {x=0;y=0;}

增加买入x=0;卖出y=0。



非常感谢你。似乎就是这样的。
 

帮助)代码中的错误是什么)在测试器中一切正常)而在演示中一切都死了)没有一个位置不打开)也没有错误)没有多少天是这样的)这里是代码)

外部inttern Tenkan=5。
外来的int dd=9。
extern int int slowing=3;
外部int kk=9;
外在的inttern UrovenUp=56。
外来的双倍TakeProfit=100。
外来的双倍Lots=3。
外置双倍止损=100。

int start()
{double MY,priceBuy,priceBuy2,Ich,D,K,K1;
双Cc1,C2,C3,C4。
int票。


MY=(Open[0] + Close[0] )/2。
Ich=((Open[iHighest(NULL, 0, MODE_OPEN, Tenkan)]) +
(Close[iLowest(NULL, 0, MODE_CLOSE, Tenkan)])/2。

D=(iStochastic(NULL,0,kk,dd,slowing,MODE_SMA,0,MODE_SIGNAL,0) )。
K=(iStochastic(NULL,0,kk,dd,slowing,MODE_SMA,0,MODE_MAIN,0))
K1=(iStochastic(NULL,0,kk,dd,slowing,MODE_SMA,0,MODE_MAIN,1))
Cc1=Close[2] < Close[1];
C2=Close[0] > Close[1]。
C3=K>K1。
C4=D<UrovenUp;


//买入和卖出价格条件//
priceBuy=MarketInfo(Symbol(),MODE_ASK)。
priceBuy2=MarketInfo(Symbol(),MODE_BID)。


//有条件购买//有条件购买


{if (MY > Ich && Cc1 && C2 && C3 && C4)

//ticket=OrderS³; //ticket=OrderS³; //condition for buying and selling//。
{ticket=OrderSend(Symbol(),OP_BUY,Lots,priceBuy,3,priceBuy2-StopLoss*Point,priceBuy2+TakeProfit*Point,
"我的宝贝",123453,0,绿色)。
如果(ticket>0)
{
如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY订单 打开:",OrderOpenPrice())。
}
else Print("错误打开BUY订单:",GetLastError())。
return(0);
}

}

}
 

我想弄清楚iCustom()函数。

我写了一个信号指标,分析两个MAs的交叉,并给出信号1或2--买入或卖出。以下是其代码。

#property indicator_chart_window

extern int MA_Light=13;
extern int MA_Hard=89;

bool sig;
int Signal=-1;
double MA_L1, MA_H1, 
       MA_L2, MA_H2;


int init()
 {
   sig=true;
 }

int start()
  {
   int    counted_bars=IndicatorCounted();
   
   MA_L1=iMA(Symbol(),0,MA_Light,0,MODE_EMA,PRICE_CLOSE,1);
   MA_H1=iMA(Symbol(),0,MA_Hard,0,MODE_EMA,PRICE_CLOSE,1);
   MA_L2=iMA(Symbol(),0,MA_Light,0,MODE_EMA,PRICE_CLOSE,2);
   MA_H2=iMA(Symbol(),0,MA_Hard,0,MODE_EMA,PRICE_CLOSE,2);
   //----------------------------------------------------------------

    if(MA_L2<=MA_H2 && MA_L1>MA_H1 && sig==true)
     {
      Signal=1;
      Alert("Покупай!!! ", Signal);
      sig=false;
     }
    if(MA_L2>=MA_H2 && MA_L1<MA_H1 && sig==true)
     {
      Signal=2;
      Alert("Продавай!!! ", Signal);
      sig=false;
     }
   
   if((MA_L2<MA_H2 && MA_L1<MA_H1 && sig==false) || // чтобы сигналило один раз
      (MA_L2>MA_H2 && MA_L1>MA_H1 && sig==false))
      sig=true;  
   
   Signal=-1;
   return(0);
  }

我试图用iCustom编写一个 通过这些信号进行交易的专家顾问,但它并不工作。Sig给我的值是0。

extern double Lots=0.1;

double Sig;
string Symb;
bool Ans;

int init()
  {
   Symb=Symbol();

   return(0);
  }

int deinit()
  {

   return(0);
  }
int start()
  {
   Sig=iCustom(Symb,0,"experiment_iCustom_indicator",13,89,0,0);
   
   if(Sig==1)
    {
      Alert("Попытка открыть Buy...");
      Ans=OrderSend(Symb,OP_BUY,Lots,Ask,3,0,0,"",69,0);
       if(Ans==true)
        Alert("Ордер buy открыт");
       if(Ans==false)
        Alert("Произошла ошибка", GetLastError()); 
    }
   if(Sig==2)
    {
      Alert("Попытка открыть sell...");
      Ans=OrderSend(Symb,OP_SELL,Lots,Bid,3,0,0,"",69,0);
       if(Ans==true)
        Alert("Ордер sell открыт");
       if(Ans==false)
        Alert("Произошла ошибка", GetLastError()); 
    }
   
   return(0);
  }

请解释我做错了什么,应该怎么做才正确。

谢谢你。

 
silhouette:

我想弄清楚iCustom()函数。

我写了一个信号指标,分析两个MAs的交叉,并给出信号1或2--买入或卖出。以下是其代码。

我试图用iCustom编写一个通过这些信号进行交易的专家顾问,但它并不工作。Sig给我的值是0。

请解释我做错了什么,应该怎么做才正确。

谢谢你。

首先,阅读关于iCustom()的更多细节。它只对指示器缓冲区起作用。

你的信号指示器(0)中没有缓冲器,因此,你不能从它那里提取数据。iCustom()如何知道你需要一个来自指标的简单int变量?

 
你好!请帮助我们如何在众多未结订单中找到在新订单之前开出的那一个。代码是什么?
 
alsu:

重启后的阅读



谢谢你! 梳理了一下。

 

OrderCloseBy.

谁能解释为什么会出现这种情况。

最上面的订单是一条蓝线 买入 - 0.01
第二个订单是底部 卖出 - 0.02
在图表上的ordersCloseBy()黄色箭头被调用的时候。第一单是-3,第二单是+4。
函数被调用 后,我希望第一个被关闭的是0,第二个被关闭的是+1。
但事实证明,

一阶封闭在0-6行。而第二笔订单的收盘价为-1.10
这个-1.10是怎么来的?因为我关闭了整个减号,因为两个订单的总利润在例子中是+在+1!

 
我如何向经纪公司隐藏EA的工作? 假设我没有对交易的评论,但EA在MT4 EA的日志中写下了所有预定义的数据(我知道也是在经纪公司的服务器上)。但事实证明,专家顾问是一个交易,而不仅仅是在图表上画东西。2012.06.14 20:30:36 MouseTrade 1.6.1 EURUSDm,M1输入。use_timer=true; delete_on_deinit=true; default_sl_level=90; default_trailing_stop=0; default_tp_level=200; use_be=true; default_be_level=50; be_offset=10; use_cl=false; default_cl_level=100; use_cp=false; cp_size_or_percent=false。cp_levels="50,100,150"; cp_lots="10,50,50"; 我怎样才能禁用日志记录,我在那里能写的最大限度是 "专家"。...: 加载成功"我不明白,还是根本就没有提供?

 
请为我指出正确的方向。我想在EXCEL中模拟交易。我想在Excel中模拟交易(在我自己的报价上)。如果我有一个数组的报价数据(日期,高点,低点,历史并不重要),我怎么能做计算呢,在excel中正确计算(请使用公式)当前的股票余额。如果我想针对某个报价下一个卖出+买入 的订单,我会在一个必要的单元格中放入一个手数,并将当前手数加入其中(如果它们是相反的,它们会相互关闭)。也许有人有一个预设值?
 
在Excel中,仅靠公式恐怕是不行的。你将不得不编写宏程序。如果你有一个表格结构,给我看看。我可以用宏来帮助你。
我对Excel的爱就像对自己的爱一样。