初学者的问题 MQL5 MT5 MetaTrader 5 - 页 453 1...446447448449450451452453454455456457458459460...1503 新评论 Pavel Kolosov 2015.09.25 13:16 #4521 pusheax: 胡说八道 嗯,大约是50/50。 Pavel Kolosov 2015.09.25 13:18 #4522 Alexey Solomin:对不起,没有指定平台,我有mql4,"POSITION_PROFIT "不在帮助中,它可能是 " OrderProfit"? (请用这种方式插入图片:论坛:如何插入图片。- 好的) 是的,它是" OrderProfit" ! [删除] 2015.09.26 07:38 #4523 你好!我在kodobase中发现了一个代码和一个我找不到答案的问题。在代码的开头#define MAGIC_NUMBER 12937 #define DEV 20 #define RISK 0.0 #define BASELOT 0.1 #define SL 100 #define TP 700 #define DELTA 30为什么要使用宏扩展(#define)? 这些变量在设置中是不可用的以及如何使其有可能通过优化来检查它们https://www.mql5.com/ru/code/viewcode/244/53730/grr-al__3.mq5 [删除] 2015.09.26 07:51 #4524 Alexander Antoshkin:你好!我在kodobase中发现了一个代码和一个我找不到答案的问题。在代码的开头为什么要使用宏扩展(#define)? 这些变量在设置中是不可用的以及如何使其有可能通过优化来检查它们https://www.mql5.com/ru/code/viewcode/244/53730/grr-al__3.mq5 让它们成为输入变量。 [删除] 2015.09.26 08:10 #4525 Tapochun: 让它们成为输入变量。在意义上说#inputMAGIC_NUMBER 12937; so input DEV 20; input RISK 0.0; input BASELOT 0.1; input SL 100; input TP 700; input DELTA 30;или input uint MAGIC_NUMBER 12937; Vladimir Karputov 2015.09.26 08:13 #4526 Alexander Antoshkin:input uint MAGIC_NUMBER=12937; [删除] 2015.09.26 08:21 #4527 Karputov Vladimir: 我就是这么做的,编译器给了我一个错误,好的,暂时谢谢你,我回到我的电脑前,我会继续的。 [删除] 2015.09.26 10:38 #4528 Alexander Antoshkin:在意义上说#inputMAGIC_NUMBER 12937; so修改器输入,放在变量类型的前面,意味着该变量将在专家顾问的输入参数 列表中可用。在魔法的特定情况下,最好在它前面加上修饰词sinput。这意味着该变量也将在输入参数列表中出现,它将参与优化,但它的值不能被优化。一般来说,有文件。在编译器中选择单词输入并按下F1。那里有一些例子。 plustrade 2015.09.27 01:53 #4529 写下了我的第一个歪歪扭扭的EA,在滑板上。告诉我为什么它不发送订单?//+------------------------------------------------------------------+ //| Первый робот.mq5 | //| Copyright 2015, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ input int TakeProfit = 1500; input int StopLoss = 500; int muving_handle_1; int muving_handle_2; double ma1[]; double ma2[]; int OnInit() { int MA_1_PERIOD = 20; int MA_2_PERIOD = 10; muving_handle_1 = iMA(_Symbol,_Period,MA_1_PERIOD,0,MODE_SMA,PRICE_CLOSE); muving_handle_2 = iMA(_Symbol,_Period,MA_2_PERIOD,0,MODE_SMA,PRICE_CLOSE); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { int signal; if(CopyBuffer(muving_handle_1,0,0,3,ma1)<0) { Alert("Ошибка копирования буферов индикатора MA 10 - номер ошибки:",GetLastError()); return; } if(CopyBuffer(muving_handle_1,0,0,3,ma2)<0) { Alert("Ошибка копирования буферов индикатора MA 20 - номер ошибки:",GetLastError()); return; } signal=CheckTradeSignal(); PositionOpen(signal); } //+------------------------------------------------------------------+ int CheckTradeSignal() { int TradeSignal=0; if((ma2[2]>ma1[2]) && (ma2[1]<ma1[1])) TradeSignal=1; // Buy signal if((ma2[2]<ma1[2]) && (ma2[1]>ma1[1])) TradeSignal=2; // Sell signal return TradeSignal; } bool PositionOpen(int tradeSignal) { int InpTP=500,InpSL=150; if(tradeSignal>0) // Signal { //--- 1. Создать запрос MqlTradeRequest Trade_reqst={0}; // Инициализация структуры торгового запроса Trade_reqst.action=TRADE_ACTION_DEAL; // Тип: немедленное совершение сделки Trade_reqst.symbol=_Symbol; // Инструмент: текущий Trade_reqst.volume=1; // Лотаж Trade_reqst.type_filling=ORDER_FILLING_FOK; // Политика исполнения: Fill Or Kill double sl,tp; if(tradeSignal==1) // Buy signal { Trade_reqst.type=ORDER_TYPE_BUY; // Тип ордера: на покупку sl=SymbolInfoDouble(_Symbol,SYMBOL_BID)-InpSL*_Point; tp=SymbolInfoDouble(_Symbol,SYMBOL_BID)+InpTP*_Point; } else { Trade_reqst.type=ORDER_TYPE_SELL; // Тип ордера: на продажу sl=SymbolInfoDouble(_Symbol,SYMBOL_ASK)+InpSL*_Point; tp=SymbolInfoDouble(_Symbol,SYMBOL_ASK)-InpTP*_Point; } Trade_reqst.sl=sl; Trade_reqst.tp=tp; //--- 2. Отправить торговый приказ MqlTradeResult Trade_reslt_m={0}; // Инициализация структуры результата торгового запроса if(!OrderSend(Trade_reqst,Trade_reslt_m)) // Отправка торгового запроса на сервер return false; else return true; } else // No signal { return false; } } Автоматический трейдинг и тестирование торговых стратегий www.mql5.com MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций plustrade 2015.09.27 02:07 #4530 告诉我为什么在调试EA 时,我可以检查只在OneInit()中的变量和函数的值?比方说,我想在OneTick()中检查一个bar或tick处理条件,我怎么做呢? 1...446447448449450451452453454455456457458459460...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
胡说八道
对不起,没有指定平台,我有mql4,"POSITION_PROFIT "不在帮助中,它可能是 " OrderProfit"?
(请用这种方式插入图片:论坛:如何插入图片。- 好的)你好!我在kodobase中发现了一个代码和一个我找不到答案的问题。
在代码的开头
为什么要使用宏扩展(#define)? 这些变量在设置中是不可用的
以及如何使其有可能通过优化来检查它们
https://www.mql5.com/ru/code/viewcode/244/53730/grr-al__3.mq5
你好!我在kodobase中发现了一个代码和一个我找不到答案的问题。
在代码的开头
为什么要使用宏扩展(#define)? 这些变量在设置中是不可用的
以及如何使其有可能通过优化来检查它们
https://www.mql5.com/ru/code/viewcode/244/53730/grr-al__3.mq5
让它们成为输入变量。
在意义上说
#inputMAGIC_NUMBER 12937; so
在意义上说
#inputMAGIC_NUMBER 12937; so
修改器输入,放在变量类型的前面,意味着该变量将在专家顾问的输入参数 列表中可用。
在魔法的特定情况下,最好在它前面加上修饰词sinput。这意味着该变量也将在输入参数列表中出现,它将参与优化,但它的值不能被优化。
一般来说,有文件。在编译器中选择单词输入并按下F1。那里有一些例子。
写下了我的第一个歪歪扭扭的EA,在滑板上。告诉我为什么它不发送订单?