如何编码? - 页 274 1...267268269270271272273274275276277278279280281...347 新评论 Mladen Rakic 2011.10.16 17:30 #2731 不幸的是,一旦你打开一个订单,就没有办法改变评论。似乎metatrader只能通过注释字段向一些经纪商提供部分平仓回溯,然后他们决定完全关闭它,不让我们(凡人)改变。 JohnCrawdford: 你好。有什么方法可以在订单创建后改变OrderComment吗?我有一个EA,在可能达到的关键点上创建挂单,但有时由于图表上不理想的快速移动,这些订单必须被取消/删除,因此不可能使用票号来识别每个订单,因为每个关键点订单可能被打开和取消/删除多次。因此,EA使用一个唯一的OrderComment来识别每个订单,但每隔一段时间,运行EA的电脑就会出现故障,或者互联网连接出现故障,这就会扰乱关键点订单的识别,因此,改变OrderComment以避免EA在没有完成之前的执行就重新启动后产生的混乱而导致的错误,就变得非常有用。非常令人困惑,对吗?P.S.神奇的数字被用来识别由EA创建的订单,所以我不能用这个数字来单独识别每个订单。如果有人能告诉我是否有办法改变OrderComments,我将非常感激。 事先谢谢你。 natsirte 2011.10.26 10:29 #2732 如何在EA上进行动态编译? 大家好! 我想知道如何创建一个具有动态编译(F5)的EA,例如每20秒一次。 我看到F5函数是由VK_F5定义的(感谢Coders Guru!)。但如何运行? 这是我的EA ********************************** //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, Systematic-Forex" #property link "http://www.systematic-forex.com" #属性 indicator_chart_window #属性 indicator_buffers 1 #属性 indicator_color1 LightGray // 黄色 Extern int TimeFrame = 5; /* extern string help_magic_number = "如果你要使用收盘选项3--用魔法数字收盘,请设置它"。 extern int magic_number = 0; // 如果你要使用关闭选项3--用魔法数字关闭,请设置它。 extern string help_comment_text = "如果你要使用关闭选项4--通过注释关闭,请设置它。 extern string comment_text = ""; extern bool HotKeyOn = true; extern bool CtrlOn = true; 外部bool ShiftOn = false; 外部bool AltOn = false。 外部字符串 HotKey = "A"; */ #import "user32.dll" bool GetAsyncKeyState(int nVirtKey); #import #include //for MessageBoxA //---- MessageBox() Flags #define MB_OK 0x00000000 #define MB_OKCANCEL 0x00000001 #define MB_ABORTRETRYIGNORE 0x00000002 #define MB_YESNOCANCEL 0x00000003 #define MB_YESNO 0x00000004 #define MB_RETRYCANCEL 0x00000005 #define MB_ICONHAND 0x00000010 #define MB_ICONQUESTION 0x00000020 #define MB_ICONEXCLAMATION 0x00000030 #define MB_ICONASTERISK 0x00000040 #define MB_USERICON 0x00000080 #define MB_ICONWARNING MB_ICONEXCLAMATION #define MB_ICONERROR MB_ICONHAND #define MB_ICONINFORMATION MB_ICONASTERISK #define MB_ICONSTOP MB_ICONHAND #define MB_DEFBUTTON1 0x00000000 #define MB_DEFBUTTON2 0x00000100 #define MB_DEFBUTTON3 0x00000200 #define MB_DEFBUTTON4 0x00000300 #define MB_APPLMODAL 0x00000000 #define MB_SYSTEMMODAL 0x00001000 #define MB_TASKMODAL 0x00002000 #define MB_HELP 0x00004000 // 帮助按钮 #define MB_NOFOCUS 0x00008000 #define MB_SETFOREGROUND 0x00010000 #define MB_DEFAULT_DESKTOP_ONLY 0x00020000 #define MB_TOPMOST 0x00040000 #define MB_RIGHT 0x00080000 #define MB_RTLREADING 0x00100000 #define KEYEVENTF_EXTENDEDKEY 0x0001 #define KEYEVENTF_KEYUP 0x0002 #define VK_0 48 #define VK_1 49 #define VK_2 50 #define VK_3 51 #define VK_4 52 #define VK_5 53 #define VK_6 54 #define VK_7 55 #define VK_8 56 #define VK_9 57 #define VK_A 65 #define VK_B 66 #define VK_C 67 #define VK_D 68 #define VK_E 69 #define VK_F 70 #define VK_G 71 #define VK_H 72 #define VK_I 73 #define VK_J 74 #define VK_K 75 #define VK_L 76 #define VK_M 77 #define VK_N 78 #define VK_O 79 #define VK_P 80 #define VK_Q 81 #define VK_R 82 #define VK_S 83 #define VK_T 84 #define VK_U 85 #define VK_V 86 #define VK_W 87 #define VK_X 88 #define VK_Y 89 #define VK_Z 90 #define VK_LBUTTON 1 //鼠标左键 #define VK_RBUTTON 2 //鼠标右键 #define VK_CANCEL 3 //控制中断处理 #define VK_MBUTTON 4 //鼠标中键(三键鼠标) #define VK_BACK 8 //BACKSPACE键 #define VK_TAB 9 //TAB键 #define VK_CLEAR 12 //清空键 #define VK_RETURN 13 //ENTER键 #define VK_SHIFT 16 //SHIFT键 #define VK_CONTROL 17 //CTRL键 #define VK_MENU 18 //ALT键 #define VK_PAUSE 19 //PAUSE键 #define VK_CAPITAL 20 //CAPS LOCK键 #define VK_ESCAPE 27 //ESC键 #define VK_SPACE 32 //SPACEBAR #define VK_PRIOR 33 //上页键 #define VK_NEXT 34 //page down键 #define VK_END 35 //结束键 #define VK_HOME 36 //HOME键 #define VK_LEFT 37 //LEFT ARROW键 #define VK_UP 38 //上箭头键 #define VK_RIGHT 39 //右方向ROW键 #define VK_DOWN 40 //DOWN箭头键 #define VK_PRINT 42 //PRINT键 #define VK_SNAPSHOT 44 //PRINT SCREEN键 #define VK_INSERT 45 //INS键 #define VK_DELETE 46 //DEL键 #define VK_HELP 47 //HELP键 #define VK_LWIN 91 //Windows左键(Microsoft® Natural®键盘) #define VK_RWIN 92 //Windows右键(自然键盘) #define VK_APPS 93 //应用程序键(自然键盘) #define VK_SLEEP 95 //电脑睡眠键 #define VK_NUMPAD0 96 //数字小键盘0键 #define VK_NUMPAD1 97 //数字小键盘1键 #define VK_NUMPAD2 98 //数字小键盘2键 #define VK_NUMPAD3 99 //数字小键盘3键 #define VK_NUMPAD4 100 //数字小键盘4键 #define VK_NUMPAD5 101 //数字小键盘5键 #define VK_NUMPAD6 102 //数字小键盘6键 #define VK_NUMPAD7 103 //数字小键盘7键 #define VK_NUMPAD8 104 //数字小键盘8键 #define VK_NUMPAD9 105 //数字小键盘9键 #define VK_MULTIPLY 106 //乘法键 #define VK_ADD 107 //添加键 #define VK_SEPARATOR 108 //分离器键 #define VK_SUBTRACT 109 //减法键 #define VK_DECIMAL 110 /小数键 #define VK_DIVIDE 111 //除法键 #define VK_F1 112 //F1键 #define VK_F2 113 /F2键 #define VK_F3 114 /F3键 #define VK_F4 115 //F4键 #define VK_F5 116 //F5键 #define VK_F6 117 //F6键 #define VK_F7 118 //F7键 #define VK_F8 119 //F8键 #define VK_F9 120 //F9键 #define VK_F10 121 //F10键 #define VK_F11 122 /F11键 #define VK_F12 123 /F12键 #define VK_F13 124 //F13 key #define VK_NUMLOCK 144 //NUM LOCK键 #define VK_SCROLL 145 //SCROLL LOCK键 #define VK_LSHIFT 160 //左SHIFT键 #define VK_RSHIFT 161 //右SHIFT键 #define VK_LCONTROL 162 //左控制键 #define VK_RCONTROL 163 //右控制键 #define VK_LMENU 164 //左边的MENU键 #define VK_RMENU 165 //右键 MENU //---- 缓冲区 double Buffer[]; int i,j; //+------------------------------------------------------------------+ //|自定义指示器初始化函数| //+------------------------------------------------------------------+ int init() { //---- 指标 SetIndexStyle(0,DRAW_LINE); //SetIndexStyle(0,DRAW_SECTION); //SetIndexStyle(0,DRAW_ARROW); //SetIndexStyle(0,DRAW_HISTOGRAM); //SetIndexStyle(0,DRAW_ZIGZAG); //SetIndexStyle(0,DRAW_NONE); SetIndexBuffer(0,Buffer); SetIndexEmptyValue(0,EMPTY_VALUE)。 Comment("\n"+"test_A_sar"); //---- return(0); } //+------------------------------------------------------------------+ //|Custor指示器的去初始化功能| //+------------------------------------------------------------------+ int deinit() { Comment("")。 return(0); } //+------------------------------------------------------------------+ //|自定义指标迭代函数| //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); 如果(counted_bars>0) counted_bars--。 limit=Bars-counted_bars。 for(int i=0; i<limit; i++) { datetime i_Time = iTime(NULL, 0, i); int j = iBarShift(NULL, TimeFrame, i_Time, bool false); double sar_m5 = iSAR(NULL, PERIOD_M5 , 0.02, 0.2, j + 0); double var_indicateur = sar_m5 ; /* // 如果(Seconds()==20) { 已编译或VK_F5 } 如果(Seconds()==40) { 已编译或VK_F5 } */ Buffer= sar_m5; } return(0); } //+------------------------------------------------------------------+ ********************************** 最好的问候test_a_sar_m5.mq4test_a_sar_m5.mq4 附加的文件: test_a_sar_m5.mq4 9 kb How to code? How to have a Please fix this indicator [删除] 2011.10.29 05:32 #2733 帮助 我正面临着一个问题,因为止损,如果有人能给我答案的话。问题是在一些metatrader图表中,价格柱值显示为五位数(1.4545),但在我的metatrader中显示为六位数(1.45456)。因此,当它试图根据你的系统设置止损时,止损值 变成200点到400点。 谢谢你的帮助。 matrixfx 2011.11.02 05:11 #2734 马丁格尔资金管理 中的凯利策略 任何人都可以将其编辑为凯利策略或除以10。 我的手数是0.10,当开始的股本是250美元时,这应该改变为0.11,当股本增长到500美元时。 ------------------------------------------------------------------- 如果(Money_management) { switch(AccountType) { case 0: lotsi=NormalizeDouble(MathCeil((risk*AccountEquity())/10000)/10,1); break; case 1: lotsi=NormalizeDouble((risk*AccountEquity())/100000,2); break; case 2: lotsi=NormalizeDouble((risk*AccountEquity())/1000,2); break; 默认情况:lotsi=NormalizeDouble(MathCeil((risk*AccountEquity())/10000)/10,1); break; } ------------------------------------------------------------------- 谢谢 [删除] 2011.11.02 11:24 #2735 习俗问题 我知道我在icustom线程上发过帖子,但... 根据代码大师的代码 double clr = iCustom(NULL,0,"LSMA in Color",14,1500,5,0); string sclr; if(clr==1) sclr="Red"; if(clr==2) sclr="Green"; if(clr==3) sclr="Yellow"; 我怎样才能用相同的缓冲区获得另一个时间段? 请注意,同一个clr在两个不同的时间段会持有不同的值。 如何解决这个问题? [删除] 2011.11.02 11:37 #2736 khatrisushil: 我正面临着一个问题,因为止损,如果有人能给我答案的话。问题是在一些metatrader图表中,价格柱值显示为五位数(1.4545),但在我的metatrader中,它显示为六位数(1.45456)。因此,当它试图根据你的系统设置止损时,止损值变成200点至400点。 我不知道如何解决这个问题。 拳头需要检测经纪人的什么数字 在代码中你应该能够检测数字的类型,有足够的数字EA编码的例子。 因此,你可能想研究一些能够处理4或5位数经纪人的EA。 alvintran 2011.11.03 11:58 #2737 帮助我在市场执行经纪人上修改我的EA! 大家好,我是EA的新手,我设计了一个带有悲剧性信号的EA。 double Buy1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double Buy1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double Buy2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double Buy2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double Buy3_1 = iSAR(NULL, 0, 0.005, 0.05, Current + 1); double Buy3_2 = iSAR(NULL, 0, 0.005, 0.05, Current + 0); double Buy4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 1); double Buy4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 0); double Sell1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double Sell1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double Sell2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double Sell2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double Sell3_1 = iSAR(NULL, 0, 0.005, 0.05, Current + 1); double Sell3_2 = iSAR(NULL, 0, 0.005, 0.05, Current + 0); double Sell4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 1); double Sell4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 0); 如果(Buy1_1 = Buy2_2 && Buy3_1 < Buy3_2 && Buy4_1 < Buy4_2) Order = SIGNAL_BUY; if (Sell1_1 > Sell1_2 && Sell2_1 Sell3_2 && Sell4_1 > Sell4_2) Order = SIGNAL_SELL; 但我不明白为什么我的EA在即时执行 中可以正常工作(我认为是这样),但在市场执行中却什么都不做,我是easy-forex的交易员,他们的模拟账户是即时执行,我的EA工作正常,但在市场执行的真实账户中,我的EA什么都不做,我的意思是它不能分析该MT4上的图表,没有错误,什么都不做。 我联系了easy-forex的支持,他们告诉我因为即时执行和市场执行不同。所以我找了一个对EA和交易有经验的人。请帮助我修改我的EA。 非常感谢你! MQL4 Learning How to code? My EA can do gpociejewski 2011.11.03 15:55 #2738 alvintran: 大家好,我是EA的新手,我开发了一个带有悲剧性信号的EA。double Buy1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double Buy1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double Buy2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double Buy2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double Buy3_1 = iSAR(NULL, 0, 0.005, 0.05, Current + 1); double Buy3_2 = iSAR(NULL, 0, 0.005, 0.05, Current + 0); double Buy4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 1); double Buy4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 0); double Sell1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double Sell1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 1); double Sell2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double Sell2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 0); double Sell3_1 = iSAR(NULL, 0, 0.005, 0.05, Current + 1); double Sell3_2 = iSAR(NULL, 0, 0.005, 0.05, Current + 0); double Sell4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 1); double Sell4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 0); 如果(Buy1_1 = Buy2_2 && Buy3_1 < Buy3_2 && Buy4_1 < Buy4_2) Order = SIGNAL_BUY; if (Sell1_1 > Sell1_2 && Sell2_1 Sell3_2 && Sell4_1 > Sell4_2) Order = SIGNAL_SELL; 但我不明白为什么我的EA在即时执行中可以正常工作(我认为是这样),但在市场执行中却什么都不做,我是easy-forex的交易员,他们的模拟账户是即时执行,我的EA工作正常,但在市场执行的真实账户中,我的EA什么都不做,我的意思是它不能分析该MT4上的图表,没有错误,什么都不做。 我联系了easy-forex的支持,他们告诉我因为即时执行和市场执行不同。所以我找了一个对EA和交易有经验的人。请帮助我修改我的EA。 非常感谢您! [lang=pl]我认为这可能是SL/TP的问题。请给我看你的代码,或你发送订单的部分 你发送订单的部分。 谢谢。 Grzesiek[/lang] alvintran 2011.11.03 16:39 #2739 g.pociejewski:[lang=pl]我认为这可能是SL/TP的问题。请给我看你的代码,或部分代码你在哪里发送订单。 欢呼声。 Grzesiek[/lang] 不不,这不是SL/TP的问题,我知道这个问题,我说它什么都不做,这意味着在模拟账户上(即时执行 或什么我不知道)它工作正常,但在真实账户上它不工作,没有任何问题,只是什么都不做。 这个EA是我写的,不是买的,不是试用版,没有任何限制。 请帮帮我吧 Robert 2011.11.03 16:55 #2740 添加时间框架和获得缓冲区 mtuppers: double clr = iCustom(NULL,0,"LSMA in Color",14,1500,5,0); string sclr; if(clr==1) sclr="Red"; if(clr==2) sclr="Green"; if(clr==3) sclr="Yellow"; 我怎样才能用相同的缓冲区获得另一个时间段? 请注意,同样的Clr在两个不同的时间段会持有不同的值。 如何解决这个问题? 嗨,Mtuppers。 原始的当前时间框架。 double clr = iCustom(NULL,0, "LSMA in Color",14,1500,5,0) 。 添加你想要的时间段,并改变变量名称,使其不同(clr和clr2)。 double clr2 = iCustom(NULL,Period_H1, "LSMA in Color",14,1500,5,0); // Period_H1时间框架 在 "彩色LSMA "指标中--有3个颜色的缓冲区,而不是只有一个,所以你可以用3个iCustom语句来获得它们。 下面是缓冲区的编号。 SetIndexBuffer(2,ExtMapBuffer1)。 SetIndexBuffer(1,ExtMapBuffer2); SetIndexBuffer(0,ExtMapBuffer3); SetIndexBuffer(3,sum); SetIndexBuffer(4,wt); SetIndexBuffer(5,clr); * 注意在你的例子中,你使用的是Buffer 0,所以你实际上只在ExtMapBuffer3中得到一种颜色。clr "缓冲区是Buffer 5。 下面是指标中的颜色缓冲区分配。 ExtMapBuffer3[shift] = wt[shift]; //红色 ExtMapBuffer2[shift] = wt[shift]; //绿色 ExtMapBuffer1[shift] = wt[shift]; //黄色 希望这有帮助。 罗伯特 How to code? LSMA Indicator help fineturn EA 1...267268269270271272273274275276277278279280281...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不幸的是,一旦你打开一个订单,就没有办法改变评论。似乎metatrader只能通过注释字段向一些经纪商提供部分平仓回溯,然后他们决定完全关闭它,不让我们(凡人)改变。
你好。
有什么方法可以在订单创建后改变OrderComment吗?
我有一个EA,在可能达到的关键点上创建挂单,但有时由于图表上不理想的快速移动,这些订单必须被取消/删除,因此不可能使用票号来识别每个订单,因为每个关键点订单可能被打开和取消/删除多次。因此,EA使用一个唯一的OrderComment来识别每个订单,但每隔一段时间,运行EA的电脑就会出现故障,或者互联网连接出现故障,这就会扰乱关键点订单的识别,因此,改变OrderComment以避免EA在没有完成之前的执行就重新启动后产生的混乱而导致的错误,就变得非常有用。
非常令人困惑,对吗?
P.S.神奇的数字被用来识别由EA创建的订单,所以我不能用这个数字来单独识别每个订单。
如果有人能告诉我是否有办法改变OrderComments,我将非常感激。
事先谢谢你。如何在EA上进行动态编译?
大家好!
我想知道如何创建一个具有动态编译(F5)的EA,例如每20秒一次。
我看到F5函数是由VK_F5定义的(感谢Coders Guru!)。但如何运行?
这是我的EA
**********************************
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, Systematic-Forex"
#property link "http://www.systematic-forex.com"
#属性 indicator_chart_window
#属性 indicator_buffers 1
#属性 indicator_color1 LightGray // 黄色
Extern int TimeFrame = 5;
/*
extern string help_magic_number = "如果你要使用收盘选项3--用魔法数字收盘,请设置它"。
extern int magic_number = 0; // 如果你要使用关闭选项3--用魔法数字关闭,请设置它。
extern string help_comment_text = "如果你要使用关闭选项4--通过注释关闭,请设置它。
extern string comment_text = "";
extern bool HotKeyOn = true;
extern bool CtrlOn = true;
外部bool ShiftOn = false;
外部bool AltOn = false。
外部字符串 HotKey = "A";
*/
#import "user32.dll"
bool GetAsyncKeyState(int nVirtKey);
#import
#include //for MessageBoxA
//---- MessageBox() Flags
#define MB_OK 0x00000000
#define MB_OKCANCEL 0x00000001
#define MB_ABORTRETRYIGNORE 0x00000002
#define MB_YESNOCANCEL 0x00000003
#define MB_YESNO 0x00000004
#define MB_RETRYCANCEL 0x00000005
#define MB_ICONHAND 0x00000010
#define MB_ICONQUESTION 0x00000020
#define MB_ICONEXCLAMATION 0x00000030
#define MB_ICONASTERISK 0x00000040
#define MB_USERICON 0x00000080
#define MB_ICONWARNING MB_ICONEXCLAMATION
#define MB_ICONERROR MB_ICONHAND
#define MB_ICONINFORMATION MB_ICONASTERISK
#define MB_ICONSTOP MB_ICONHAND
#define MB_DEFBUTTON1 0x00000000
#define MB_DEFBUTTON2 0x00000100
#define MB_DEFBUTTON3 0x00000200
#define MB_DEFBUTTON4 0x00000300
#define MB_APPLMODAL 0x00000000
#define MB_SYSTEMMODAL 0x00001000
#define MB_TASKMODAL 0x00002000
#define MB_HELP 0x00004000 // 帮助按钮
#define MB_NOFOCUS 0x00008000
#define MB_SETFOREGROUND 0x00010000
#define MB_DEFAULT_DESKTOP_ONLY 0x00020000
#define MB_TOPMOST 0x00040000
#define MB_RIGHT 0x00080000
#define MB_RTLREADING 0x00100000
#define KEYEVENTF_EXTENDEDKEY 0x0001
#define KEYEVENTF_KEYUP 0x0002
#define VK_0 48
#define VK_1 49
#define VK_2 50
#define VK_3 51
#define VK_4 52
#define VK_5 53
#define VK_6 54
#define VK_7 55
#define VK_8 56
#define VK_9 57
#define VK_A 65
#define VK_B 66
#define VK_C 67
#define VK_D 68
#define VK_E 69
#define VK_F 70
#define VK_G 71
#define VK_H 72
#define VK_I 73
#define VK_J 74
#define VK_K 75
#define VK_L 76
#define VK_M 77
#define VK_N 78
#define VK_O 79
#define VK_P 80
#define VK_Q 81
#define VK_R 82
#define VK_S 83
#define VK_T 84
#define VK_U 85
#define VK_V 86
#define VK_W 87
#define VK_X 88
#define VK_Y 89
#define VK_Z 90
#define VK_LBUTTON 1 //鼠标左键
#define VK_RBUTTON 2 //鼠标右键
#define VK_CANCEL 3 //控制中断处理
#define VK_MBUTTON 4 //鼠标中键(三键鼠标)
#define VK_BACK 8 //BACKSPACE键
#define VK_TAB 9 //TAB键
#define VK_CLEAR 12 //清空键
#define VK_RETURN 13 //ENTER键
#define VK_SHIFT 16 //SHIFT键
#define VK_CONTROL 17 //CTRL键
#define VK_MENU 18 //ALT键
#define VK_PAUSE 19 //PAUSE键
#define VK_CAPITAL 20 //CAPS LOCK键
#define VK_ESCAPE 27 //ESC键
#define VK_SPACE 32 //SPACEBAR
#define VK_PRIOR 33 //上页键
#define VK_NEXT 34 //page down键
#define VK_END 35 //结束键
#define VK_HOME 36 //HOME键
#define VK_LEFT 37 //LEFT ARROW键
#define VK_UP 38 //上箭头键
#define VK_RIGHT 39 //右方向ROW键
#define VK_DOWN 40 //DOWN箭头键
#define VK_PRINT 42 //PRINT键
#define VK_SNAPSHOT 44 //PRINT SCREEN键
#define VK_INSERT 45 //INS键
#define VK_DELETE 46 //DEL键
#define VK_HELP 47 //HELP键
#define VK_LWIN 91 //Windows左键(Microsoft® Natural®键盘)
#define VK_RWIN 92 //Windows右键(自然键盘)
#define VK_APPS 93 //应用程序键(自然键盘)
#define VK_SLEEP 95 //电脑睡眠键
#define VK_NUMPAD0 96 //数字小键盘0键
#define VK_NUMPAD1 97 //数字小键盘1键
#define VK_NUMPAD2 98 //数字小键盘2键
#define VK_NUMPAD3 99 //数字小键盘3键
#define VK_NUMPAD4 100 //数字小键盘4键
#define VK_NUMPAD5 101 //数字小键盘5键
#define VK_NUMPAD6 102 //数字小键盘6键
#define VK_NUMPAD7 103 //数字小键盘7键
#define VK_NUMPAD8 104 //数字小键盘8键
#define VK_NUMPAD9 105 //数字小键盘9键
#define VK_MULTIPLY 106 //乘法键
#define VK_ADD 107 //添加键
#define VK_SEPARATOR 108 //分离器键
#define VK_SUBTRACT 109 //减法键
#define VK_DECIMAL 110 /小数键
#define VK_DIVIDE 111 //除法键
#define VK_F1 112 //F1键
#define VK_F2 113 /F2键
#define VK_F3 114 /F3键
#define VK_F4 115 //F4键
#define VK_F5 116 //F5键
#define VK_F6 117 //F6键
#define VK_F7 118 //F7键
#define VK_F8 119 //F8键
#define VK_F9 120 //F9键
#define VK_F10 121 //F10键
#define VK_F11 122 /F11键
#define VK_F12 123 /F12键
#define VK_F13 124 //F13 key
#define VK_NUMLOCK 144 //NUM LOCK键
#define VK_SCROLL 145 //SCROLL LOCK键
#define VK_LSHIFT 160 //左SHIFT键
#define VK_RSHIFT 161 //右SHIFT键
#define VK_LCONTROL 162 //左控制键
#define VK_RCONTROL 163 //右控制键
#define VK_LMENU 164 //左边的MENU键
#define VK_RMENU 165 //右键 MENU
//---- 缓冲区
double Buffer[];
int i,j;
//+------------------------------------------------------------------+
//|自定义指示器初始化函数|
//+------------------------------------------------------------------+
int init()
{
//---- 指标
SetIndexStyle(0,DRAW_LINE);
//SetIndexStyle(0,DRAW_SECTION);
//SetIndexStyle(0,DRAW_ARROW);
//SetIndexStyle(0,DRAW_HISTOGRAM);
//SetIndexStyle(0,DRAW_ZIGZAG);
//SetIndexStyle(0,DRAW_NONE);
SetIndexBuffer(0,Buffer);
SetIndexEmptyValue(0,EMPTY_VALUE)。
Comment("\n"+"test_A_sar");
//----
return(0);
}
//+------------------------------------------------------------------+
//|Custor指示器的去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
Comment("")。
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
如果(counted_bars>0) counted_bars--。
limit=Bars-counted_bars。
for(int i=0; i<limit; i++)
{
datetime i_Time = iTime(NULL, 0, i);
int j = iBarShift(NULL, TimeFrame, i_Time, bool false);
double sar_m5 = iSAR(NULL, PERIOD_M5 , 0.02, 0.2, j + 0);
double var_indicateur = sar_m5 ;
/*
//
如果(Seconds()==20)
{
已编译或VK_F5
}
如果(Seconds()==40)
{
已编译或VK_F5
}
*/
Buffer= sar_m5;
}
return(0);
}
//+------------------------------------------------------------------+
**********************************
最好的问候test_a_sar_m5.mq4test_a_sar_m5.mq4
帮助
我正面临着一个问题,因为止损,如果有人能给我答案的话。问题是在一些metatrader图表中,价格柱值显示为五位数(1.4545),但在我的metatrader中显示为六位数(1.45456)。因此,当它试图根据你的系统设置止损时,止损值 变成200点到400点。
谢谢你的帮助。
马丁格尔资金管理 中的凯利策略
任何人都可以将其编辑为凯利策略或除以10。
我的手数是0.10,当开始的股本是250美元时,这应该改变为0.11,当股本增长到500美元时。
-------------------------------------------------------------------
如果(Money_management)
{
switch(AccountType)
{
case 0: lotsi=NormalizeDouble(MathCeil((risk*AccountEquity())/10000)/10,1); break;
case 1: lotsi=NormalizeDouble((risk*AccountEquity())/100000,2); break;
case 2: lotsi=NormalizeDouble((risk*AccountEquity())/1000,2); break;
默认情况:lotsi=NormalizeDouble(MathCeil((risk*AccountEquity())/10000)/10,1); break;
}
-------------------------------------------------------------------
谢谢
习俗问题
我知道我在icustom线程上发过帖子,但...
根据代码大师的代码
double clr = iCustom(NULL,0,"LSMA in Color",14,1500,5,0);
string sclr;
if(clr==1) sclr="Red";
if(clr==2) sclr="Green";
if(clr==3) sclr="Yellow";
我怎样才能用相同的缓冲区获得另一个时间段?
请注意,同一个clr在两个不同的时间段会持有不同的值。
如何解决这个问题?
我正面临着一个问题,因为止损,如果有人能给我答案的话。问题是在一些metatrader图表中,价格柱值显示为五位数(1.4545),但在我的metatrader中,它显示为六位数(1.45456)。因此,当它试图根据你的系统设置止损时,止损值变成200点至400点。 我不知道如何解决这个问题。
拳头需要检测经纪人的什么数字
在代码中你应该能够检测数字的类型,有足够的数字EA编码的例子。
因此,你可能想研究一些能够处理4或5位数经纪人的EA。
帮助我在市场执行经纪人上修改我的EA!
大家好,我是EA的新手,我设计了一个带有悲剧性信号的EA。
double Buy1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 1);
double Buy1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 1);
double Buy2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Buy2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Buy3_1 = iSAR(NULL, 0, 0.005, 0.05, Current + 1);
double Buy3_2 = iSAR(NULL, 0, 0.005, 0.05, Current + 0);
double Buy4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 1);
double Buy4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 0);
double Sell1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 1);
double Sell1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 1);
double Sell2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Sell2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Sell3_1 = iSAR(NULL, 0, 0.005, 0.05, Current + 1);
double Sell3_2 = iSAR(NULL, 0, 0.005, 0.05, Current + 0);
double Sell4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 1);
double Sell4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 0);
如果(Buy1_1 = Buy2_2 && Buy3_1 < Buy3_2 && Buy4_1 < Buy4_2) Order = SIGNAL_BUY;
if (Sell1_1 > Sell1_2 && Sell2_1 Sell3_2 && Sell4_1 > Sell4_2) Order = SIGNAL_SELL;
但我不明白为什么我的EA在即时执行 中可以正常工作(我认为是这样),但在市场执行中却什么都不做,我是easy-forex的交易员,他们的模拟账户是即时执行,我的EA工作正常,但在市场执行的真实账户中,我的EA什么都不做,我的意思是它不能分析该MT4上的图表,没有错误,什么都不做。
我联系了easy-forex的支持,他们告诉我因为即时执行和市场执行不同。所以我找了一个对EA和交易有经验的人。请帮助我修改我的EA。
非常感谢你!
大家好,我是EA的新手,我开发了一个带有悲剧性信号的EA。
double Buy1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 1);
double Buy1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 1);
double Buy2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Buy2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Buy3_1 = iSAR(NULL, 0, 0.005, 0.05, Current + 1);
double Buy3_2 = iSAR(NULL, 0, 0.005, 0.05, Current + 0);
double Buy4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 1);
double Buy4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 0);
double Sell1_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 1);
double Sell1_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 1);
double Sell2_1 = iMA(NULL, 0, 55, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Sell2_2 = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Sell3_1 = iSAR(NULL, 0, 0.005, 0.05, Current + 1);
double Sell3_2 = iSAR(NULL, 0, 0.005, 0.05, Current + 0);
double Sell4_1 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 1);
double Sell4_2 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, Current + 0);
如果(Buy1_1 = Buy2_2 && Buy3_1 < Buy3_2 && Buy4_1 < Buy4_2) Order = SIGNAL_BUY;
if (Sell1_1 > Sell1_2 && Sell2_1 Sell3_2 && Sell4_1 > Sell4_2) Order = SIGNAL_SELL;
但我不明白为什么我的EA在即时执行中可以正常工作(我认为是这样),但在市场执行中却什么都不做,我是easy-forex的交易员,他们的模拟账户是即时执行,我的EA工作正常,但在市场执行的真实账户中,我的EA什么都不做,我的意思是它不能分析该MT4上的图表,没有错误,什么都不做。
我联系了easy-forex的支持,他们告诉我因为即时执行和市场执行不同。所以我找了一个对EA和交易有经验的人。请帮助我修改我的EA。
非常感谢您![lang=pl]我认为这可能是SL/TP的问题。请给我看你的代码,或你发送订单的部分
你发送订单的部分。
谢谢。
Grzesiek[/lang]
[lang=pl]我认为这可能是SL/TP的问题。请给我看你的代码,或部分代码
你在哪里发送订单。
欢呼声。
Grzesiek[/lang]不不,这不是SL/TP的问题,我知道这个问题,我说它什么都不做,这意味着在模拟账户上(即时执行 或什么我不知道)它工作正常,但在真实账户上它不工作,没有任何问题,只是什么都不做。
这个EA是我写的,不是买的,不是试用版,没有任何限制。
请帮帮我吧
添加时间框架和获得缓冲区
double clr = iCustom(NULL,0,"LSMA in Color",14,1500,5,0);
string sclr;
if(clr==1) sclr="Red";
if(clr==2) sclr="Green";
if(clr==3) sclr="Yellow";
我怎样才能用相同的缓冲区获得另一个时间段?
请注意,同样的Clr在两个不同的时间段会持有不同的值。
如何解决这个问题?嗨,Mtuppers。
原始的当前时间框架。
double clr = iCustom(NULL,0, "LSMA in Color",14,1500,5,0) 。
添加你想要的时间段,并改变变量名称,使其不同(clr和clr2)。
double clr2 = iCustom(NULL,Period_H1, "LSMA in Color",14,1500,5,0); // Period_H1时间框架
在 "彩色LSMA "指标中--有3个颜色的缓冲区,而不是只有一个,所以你可以用3个iCustom语句来获得它们。
下面是缓冲区的编号。
SetIndexBuffer(2,ExtMapBuffer1)。
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexBuffer(0,ExtMapBuffer3);
SetIndexBuffer(3,sum);
SetIndexBuffer(4,wt);
SetIndexBuffer(5,clr);
* 注意在你的例子中,你使用的是Buffer 0,所以你实际上只在ExtMapBuffer3中得到一种颜色。clr "缓冲区是Buffer 5。
下面是指标中的颜色缓冲区分配。
ExtMapBuffer3[shift] = wt[shift]; //红色
ExtMapBuffer2[shift] = wt[shift]; //绿色
ExtMapBuffer1[shift] = wt[shift]; //黄色
希望这有帮助。
罗伯特