GUO的粉丝们 - 页 2 123456789 新评论 Forex Trader 2005.02.06 17:42 #11 对不起,我可以得到一份详细的guo书说明吗? 它一般有什么作用,如何使用它? 预先感谢 Forex Trader 2005.02.06 18:08 #12 <br / translate="no"> 霍恩 06.02.05 06:45 为指标使用MessageBox来减慢其执行速度的想法很好。我可能永远不会猜到这一点。它为交互式订单安排提供了许多可能性。我对你的尊重,Komposter! 至于那些批评实施的人,我不知道他们为什么说它是 "粗糙的"。 我相信对许多交易者来说,使用你的脚本来下挂单会非常方便。 喇叭,我说了我的想法,我根本就没有骂人。所以下次请考虑一下。 好运 :) Forex Trader 2005.02.06 18:18 #13 Flower_of_Life 06.02.05 17:42 你把它转移到图表上。连接点是开盘价。止损 - 50点,获利 - +50点。 你把线移到需要的水平(获利 可以删除),按确定,订单就下了。 如果Openprice_line高于市场价格--订单将是买入止损或卖出限价(取决于止损),如果它低于--卖出止损或买入限价(相同)。 ,该脚本非常粗糙,没有检查,一切都是随机的=))) ,将是热情的--我们将改进它:) Forex Trader 2005.02.06 18:34 #14 那么,是否可以将止损和盈利直接拖到线上? Forex Trader 2005.02.06 21:25 #15 专家作家应该如何进行。 谢谢你的澄清,我们一定会考虑到这一点,不再用订单做while(true)。 下面是同样的订单,但经过修改后的销售。 (我希望我已经改变了一切) //+------------------------------------------------------------------+ //| order_sell.mq4 | //| Copyright c 2004, Alexander Ivanov. | //| mailto:alexander@indus.ru | //+------------------------------------------------------------------+ //| Разрешите импорт функций из библиотек через: | //| "Сервис -> Настройки -> Советники -> Разрешить импорт DLL" | //+------------------------------------------------------------------+ #property copyright "Copyright c 2004, Alexander Ivanov." #property link "mailto:alexander@indus.ru" #include <WinUser32.mqh> #include <stdlib.mqh> #include <stderror.mqh> //+------------------------------------------------------------------+ //| Указываем количество последних дней, на которых ищем минимум | //| для установки стоплосса | //+------------------------------------------------------------------+ #define DAYS_TO_CONSIDER 3 //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { return(0); } int deinit() { //---- просто удалим свои линии стопов ObjectDelete( "order_sell_Stop_Loss_Line"); ObjectDelete( "order_sell_Take_Profit_Line"); //---- return(0); } //+------------------------------------------------------------------+ //| Основная функция скрипта | //+------------------------------------------------------------------+ int start() { double DaysLowArray[]; double dMyStopLoss = 0; double dMyPrice = 0; double dMyTakeProfit = 0; double dMyLots = 0; //---- скопируем массив дневных данных if(ArrayCopySeries(DaysLowArray, MODE_HIGH, Symbol(),PERIOD_D1) < DAYS_TO_CONSIDER) { return(-1); } //---- расчет цен dMyPrice = Bid; dMyStopLoss = DaysLowArray[Highest(Symbol(),PERIOD_D1,MODE_HIGH,DAYS_TO_CONSIDER,0)]; dMyTakeProfit = dMyPrice - 2*MathMax((MathAbs(Ask-Bid)/2),MathAbs(dMyPrice-dMyStopLoss)); dMyStopLoss += 10*Point; dMyLots = 0.1; //---- выставим линии для визуального управления стопами ObjectCreate( "order_sell_Stop_Loss_Line", OBJ_HLINE, 0, 0, dMyStopLoss, 0, 0, 0, 0 ); ObjectSet( "order_sell_Stop_Loss_Line", OBJPROP_COLOR, Red ); ObjectSetText( "order_sell_Stop_Loss_Line", "Stop_Loss_Line", 6, "Arial", Red ); ObjectCreate( "order_sell_Take_Profit_Line", OBJ_HLINE, 0, 0, dMyTakeProfit, 0, 0, 0, 0 ); ObjectSet( "order_sell_Take_Profit_Line", OBJPROP_COLOR, Lime ); ObjectSetText( "order_sell_Take_Profit_Line", "Take_Profit_Line", 6, "Arial", Lime ); //---- запросим подтверждение на отработку string quest="Вы хотите продать "+DoubleToStr(dMyLots,2)+" "+Symbol()+" по цене Bid "+ DoubleToStr(dMyPrice,Digits)+" \n\n"+ "Переместите выставленные линии на необходимые уровни и нажмите ОК \n"+ "(красная линия - Stop Loss, зеленая - Take Profit)\n\n"+ "Нажмите Отмена чтобы отказаться от сделки"; if(MessageBoxA(0,quest,"Визуальная установка ордера на продажу", MB_OKCANCEL | MB_ICONASTERISK | MB_TOPMOST)!=IDOK) return(-2); //---- трейдер согласился, возьмем новые уровни стопов и обязательно проверим их! dMyStopLoss =NormalizeDouble(ObjectGet( "order_sell_Stop_Loss_Line", OBJPROP_PRICE1),Digits); dMyTakeProfit=NormalizeDouble(ObjectGet( "order_sell_Take_Profit_Line",OBJPROP_PRICE1),Digits); if((dMyStopLoss>0 && dMyStopLoss<Bid) || (dMyTakeProfit>0 && dMyTakeProfit>Bid)) { Print("Неправильно выставлены уровни Stop Loss и Take Profit!"); MessageBoxA(0,"Неправильно выставлены уровни Stop Loss и Take Profit! \n"+ "Операция отменена\n\n", "Визуальная установка ордера на продажу",MB_OK | MB_ICONSTOP | MB_TOPMOST); return(-3); } //---- выведем в лог сообщение об заявке Print("sell ",DoubleToStr(dMyLots,2)," ",Symbol()," at ",DoubleToStr(dMyPrice,Digits), "sl ",DoubleToStr(dMyStopLoss,Digits)," tp ",DoubleToStr(dMyTakeProfit,Digits)); //---- пробуем послать команду int ticket=OrderSend(Symbol(),OP_SELL,dMyLots,dMyPrice,3,dMyStopLoss,dMyTakeProfit, "Ordered by \"order_sell\" script" ,255,0,HotPink); if(ticket>0) // все отлично - заявка прошла { //---- сразу же выведем в лог подтверждение Print("#",ticket," sell ",DoubleToStr(dMyLots,2)," ",Symbol()," at ", DoubleToStr(dMyPrice,Digits)," is done"); //---- покажем окно if(MessageBoxA(0,"Ордер успешно исполнен \nРаспечатать его?", "Визуальная установка ордера на продажу", MB_YESNO | MB_ICONASTERISK | MB_TOPMOST)==IDYES) { OrderPrint(); } //---- все ок, выходим return(0); } //---- тут все плохо - выведем в лог сообщение int err=GetLastError(); Print("sell ",DoubleToStr(dMyLots,2)," ",Symbol()," at ", DoubleToStr(dMyPrice,Digits)," failed [",ErrorDescription(err),"]"); //----покажем окно MessageBoxA(0,ErrorDescription(err), "Ошибка визуальной установки ордера", MB_OK | MB_ICONERROR | MB_TOPMOST); return(-4); } //+------------------------------------------------------------------+ Forex Trader 2005.02.06 21:27 #16 зы: если кто знает, как сделать месседж "поверх всех окон", скажите, плз.... а то так неудубно..... я использовал MB_TOPMOST, попробуй, у меня вроде бы получилось. 我应该把它写在哪里? 例如这里 :) MessageBoxA(0,ErrorDescription(err), "Error", MB_OK |MB_ICONERROR|MB_TOPMOST)。 Forex Trader 2005.02.06 21:31 #17 喇叭,我说了我的想法,根本没有骂人。因此,下一次,请想一想该怎么写。<br / translate="no"> 我很抱歉,我生气了。 Forex Trader 2005.02.06 21:38 #18 这样你就可以把止损和利润直接拖到线上? 这就是它的魅力所在! 到 Komposter。 如果不是太困难的话,请完善你的脚本,使之具有各种检查等功能。 然后我们会有三个伟大的剧本。 1.一个用于放置待定订单。 2.一个用于市场购买订单。 3.一个用于市场卖出订单。 这还不够! 然后我们将继续寻找其他额外的功能,也许人们会给出一些提示或要求做一些具体的事情......更棒的是,如果有人加入开发;) MetaQuotes 2005.02.06 21:42 #19 似乎MessageBox 应该被引入标准的MQL4函数中,所以你不必明确地允许DLL函数调用。而且它的工作速度会更快。 Forex Trader 2005.02.06 22:43 #20 雷纳图。 在编译Expert代码时,一个错误警告 '4107'--用另一个值重新定义 它转到 "记录请求信息 "一行。 什么需要被覆盖? 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
它一般有什么作用,如何使用它?
预先感谢
为指标使用MessageBox来减慢其执行速度的想法很好。我可能永远不会猜到这一点。它为交互式订单安排提供了许多可能性。我对你的尊重,Komposter!
至于那些批评实施的人,我不知道他们为什么说它是 "粗糙的"。
我相信对许多交易者来说,使用你的脚本来下挂单会非常方便。
喇叭,我说了我的想法,我根本就没有骂人。所以下次请考虑一下。
好运 :)
你把它转移到图表上。连接点是开盘价。止损 - 50点,获利 - +50点。
你把线移到需要的水平(获利 可以删除),按确定,订单就下了。
如果Openprice_line高于市场价格--订单将是买入止损或卖出限价(取决于止损),如果它低于--卖出止损或买入限价(相同)。
,该脚本非常粗糙,没有检查,一切都是随机的=)))
,将是热情的--我们将改进它:)
谢谢你的澄清,我们一定会考虑到这一点,不再用订单做while(true)。
下面是同样的订单,但经过修改后的销售。
(我希望我已经改变了一切)
я использовал MB_TOPMOST, попробуй, у меня вроде бы получилось.
我应该把它写在哪里?
例如这里 :)
MessageBoxA(0,ErrorDescription(err), "Error", MB_OK |MB_ICONERROR|MB_TOPMOST)。
我很抱歉,我生气了。
这就是它的魅力所在!
到 Komposter。
如果不是太困难的话,请完善你的脚本,使之具有各种检查等功能。
然后我们会有三个伟大的剧本。
1.一个用于放置待定订单。
2.一个用于市场购买订单。
3.一个用于市场卖出订单。
这还不够!
然后我们将继续寻找其他额外的功能,也许人们会给出一些提示或要求做一些具体的事情......更棒的是,如果有人加入开发;)
在编译Expert代码时,一个错误警告
'4107'--用另一个值重新定义
它转到 "记录请求信息 "一行。
什么需要被覆盖?