佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1018|回复: 19

EA尋求幫忙

  [复制链接]
发表于 23-6-2011 09:36 PM | 显示全部楼层 |阅读模式
本人自己學寫的EA,但有很多ERROR,不懂怎麼回事,請給為大大幫忙解答,謝謝
bool openbuysignal()
    {
     double stoch_M = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
     double stoch_S = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);
     double stoch_M_shift1 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
     double stoch_S_shift1 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1)
     double stoch_M_shift2 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,2);
     double stoch_s_shift2 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,2)


  if((iStoch_S_shift2 < iStoch_M_shift2 && iStoch_S_shift1 <=iStoch_M_shift2 && iStoch_M_shift1 &&
  iStoch_M > iStoch_S)

    return(0);   
{
回复

使用道具 举报


ADVERTISEMENT

发表于 23-6-2011 09:40 PM | 显示全部楼层
本帖最后由 mancai 于 23-6-2011 09:58 PM 编辑

double stoch_S_shift1 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1) 少了;
double stoch_s_shift2 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,2) 少了;
还有if旁边多了一个(

  if((iStoch_S_shift2 < iStoch_M_shift2 && iStoch_S_shift1 <=iStoch_M_shift2 && iStoch_M_shift1 &&
  iStoch_M > iStoch_S) (为什么define 叫 stoch, 放在这里是istoch?)
回复

使用道具 举报

发表于 23-6-2011 11:47 PM | 显示全部楼层
本帖最后由 sprOc 于 23-6-2011 11:49 PM 编辑

bool openbuysignal() {
     double stoch_M = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
     double stoch_S = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);
     double stoch_M_shift1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
     double stoch_S_shift1 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);
     double stoch_M_shift2 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,2);
     double stoch_S_shift2 = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,2);
     if ((stoch_S_shift2 < stoch_M_shift2 && stoch_S_shift1 <= stoch_M_shift2 && stoch_M_shift1 && stoch_M > stoch_S)) {
     //开单指令如: OrderSend
     }
     return(0);   
}

你的问题。。

不能用 iStoch , 必须用 iStochastic
iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1) 后面少了 ";"
记得每个开就要有一个关。 开 “{” 关 “}”
你已经把iStochastic的数据set在stoch_M/stoch_S/stochM_shift 里了,所以不必再用iStochastic。
记得大写小写很重要,我指的是保存数据的variable。

ps:没用stoch来写ea,signal 对错我就不懂了。
回复

使用道具 举报

 楼主| 发表于 24-6-2011 01:26 AM | 显示全部楼层
多謝mancai和sprOc大大的指點,我也跟的大大們的指示進行的修改,從原本的8個error到現在只剩下1個error,而最後一個error的意思是 "unbalanced parentheses"甚麼意思呢,根據error那邊的指示改了也是一樣.........請問大大們懂是身麼意思嗎??謝謝
回复

使用道具 举报

发表于 24-6-2011 07:46 AM | 显示全部楼层
double stoch_S_shift1 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1) 少了;
double stoch_s_shift2 = ...
mancai 发表于 23-6-2011 09:40 PM

ea是可以用原本的indicator来做吗?
回复

使用道具 举报

发表于 24-6-2011 10:01 AM | 显示全部楼层
回复 4# mychtan

会不会是这段。。

if ((stoch_S_shift2 < stoch_M_shift2 && stoch_S_shift1 <= stoch_M_shift2 && stoch_M_shift1 && stoch_M > stoch_S)) {

问题在于 (( . 记得这个也是有看关的。 开 “(” 关“)”
回复

使用道具 举报

Follow Us
发表于 24-6-2011 10:55 AM | 显示全部楼层
ea是可以用原本的indicator来做吗?
chromeie 发表于 24-6-2011 07:46 AM


EA最好用default build in indicator来跑,如果用custom indicator,它需要一直load那个custom indicator,backtest超级慢。
回复

使用道具 举报

 楼主| 发表于 24-6-2011 01:16 PM | 显示全部楼层
//--- input parameters
extern int       TakeProfit=10;//
extern int       StopLose=20;
extern int       TrailingStop=5;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

bool openbuysignal()
    {
     double stoch_M = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
     double stoch_S = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);
     double stoch_M_shift1 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
     double stoch_S_shift1 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);
     double stoch_M_shift2 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,2);
     double stoch_S_shift2 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,2);
  
  
  if (stoch_S_shift2 < stoch_M_shift2 && stoch_S_shift1 <= stoch_M_shift1 &&
  stoch_M > stoch_S)
   
   }
      return (true);
   }else{
      return (false);
  
   
bool opensellsignal()
{
     double stoch_M = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
     double stoch_S = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);
     double stoch_M_shift1 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,1);
     double stoch_S_shift1 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);
     double stoch_M_shift2 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,2);
     double stoch_S_shift2 = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,2);
     
       if (stoch_S_shift2 > stoch_M_shift2 && stoch_S_shift1 >= stoch_M_shift1 &&
  stoch_M < stoch_S)
  
    }
   
      return (true);
   }else{
      return (false);

bool closebuysignal()
{
     double stoch_M = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
     double stoch_S = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);
      
      
     if(stoch_M<stoch_S)
  
      return (true);
   }else{
      return (false);
   }   

bool closesellsignal()
{

      double stoch_M = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
      double stoch_S = iStoch(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0);
      
      if(stoch_M>stoch_S)
   
    return(true);
    }else{
    return(false);
    }
int OrdersCount()
{
   int total  = OrdersTotal();
   int count =0;
   for(int cnt = 0 ; cnt < total ; cnt++)
   {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol())
      count++;
   }
   return (count);
}



以上是修改後的,從原本6個error到現在1個error,而那唯一的error是 '}' unbalanced parentheses,給為大大可以幫幫忙嗎?
回复

使用道具 举报


ADVERTISEMENT

发表于 24-6-2011 03:24 PM | 显示全部楼层
//--- input parameters
extern int       TakeProfit=10;//
extern int       StopLose=20;
extern int ...
mychtan 发表于 24-6-2011 01:16 PM


这不是我给你的template,你无需重新写new EA,因为你的start() 里面什么都没有,ordersend,orderclose... 全都没有
我给你的template基本basic的东西都有了,你只要replace你的buy,sell,close buy,close sell 就可以了, 你改多几次,你就要开始修改其他东西,你越改得多,就越明白,我也是从这个basic的template开始学,当时mylifemyway兄只给我一个template,我看了就慢慢改,没有一个一个error问他,有error就debug line by line,这是初学者要自己去经历的。
回复

使用道具 举报

 楼主| 发表于 24-6-2011 03:53 PM | 显示全部楼层
这不是我给你的template,你无需重新写new EA,因为你的start() 里面什么都没有,ordersend,orderclose ...
mancai 发表于 24-6-2011 03:24 PM



明白,謝謝
回复

使用道具 举报

 楼主| 发表于 24-6-2011 05:43 PM | 显示全部楼层
这不是我给你的template,你无需重新写new EA,因为你的start() 里面什么都没有,ordersend,orderclose ...
mancai 发表于 24-6-2011 03:24 PM



用了你給我的template從新進行了修改,終於可以了,但成績還是滿江紅,呵呵......繼續努力,加油
回复

使用道具 举报

发表于 25-6-2011 01:21 AM | 显示全部楼层
用了你給我的template從新進行了修改,終於可以了,但成績還是滿江紅,呵呵......繼續努力,加油
mychtan 发表于 24-6-2011 05:43 PM


慢慢来,如果简单的EA可以赚钱,天下就一大堆富翁了
接下来你可以加value,比如超买 80以上, 超卖20以下
比如buy signal
if (stoch_S_shift2 > stoch_M_shift2 && stoch_M_shift2 < 20 && stoch_S_shift1 <= stoch_M_shift1 &&  stoch_M_shift1>=20 &&
  stoch_M > stoch_S && stoch_M>20)
回复

使用道具 举报

 楼主| 发表于 25-6-2011 01:30 AM | 显示全部楼层
慢慢来,如果简单的EA可以赚钱,天下就一大堆富翁了
接下来你可以加value,比如超买 80以上, 超卖20以 ...
mancai 发表于 25-6-2011 01:21 AM



mancai老大,你真的是我的恩人,我才在思考要怎樣加入value的寫法,你就在這回復了我的帖子而且還給了我sample,太感謝你了,我會繼續努力的^^
回复

使用道具 举报

发表于 25-6-2011 12:18 PM | 显示全部楼层
mancai老大,你真的是我的恩人,我才在思考要怎樣加入value的寫法,你就在這回復了我的帖子而且還給了 ...
mychtan 发表于 25-6-2011 01:30 AM


你好命咯,遇到我
建议你多下载些free EA来参考coding,千万不要下载decompiled version,因为coding很乱。
回复

使用道具 举报

 楼主| 发表于 25-6-2011 12:36 PM | 显示全部楼层
你好命咯,遇到我
建议你多下载些free EA来参考coding,千万不要下载decompiled version,因为co ...
mancai 发表于 25-6-2011 12:18 PM



是的mancai老大,謝謝你。我會繼續努力。還有我剛讀了你的positive correlation hedge 方式的帖子,讀完後真的只有一句話"服"你好利害   

的空要响你請教,但我好像有聽你跟我說過它是script的操作方式是吧?
回复

使用道具 举报

发表于 25-6-2011 03:45 PM | 显示全部楼层
是的mancai老大,謝謝你。我會繼續努力。還有我剛讀了你的positive correlation hedge 方式的帖子,讀 ...
mychtan 发表于 25-6-2011 12:36 PM


人手也可以,但下单就比较慢
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 25-6-2011 03:51 PM | 显示全部楼层
人手也可以,但下单就比较慢
mancai 发表于 25-6-2011 03:45 PM



想問你,怎樣attach 2個pair在同一個screen??,在你的帖子里有讀到overlay chart,但我在我的mt4里找不到overlay chart,是不是要download 的或是EA來的?
回复

使用道具 举报

发表于 25-6-2011 03:55 PM | 显示全部楼层
想問你,怎樣attach 2個pair在同一個screen??,在你的帖子里有讀到overlay chart,但我在我的mt4里找 ...
mychtan 发表于 25-6-2011 03:51 PM


indicator来的,google就找得到,关于positive correlation去我的贴问吧
回复

使用道具 举报

 楼主| 发表于 25-6-2011 04:06 PM | 显示全部楼层
indicator来的,google就找得到,关于positive correlation去我的贴问吧
mancai 发表于 25-6-2011 03:55 PM



ok,收到,我試試去了解看看
回复

使用道具 举报

发表于 25-6-2011 11:13 PM | 显示全部楼层
mancai大大乐于助人 以前我也有东西要问 回了几个人信息 其他人鸟我都没空 就只有mancai大大回我而已
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 31-12-2025 03:52 PM , Processed in 0.137390 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表