Вопросы от "чайника" - страница 91

 
x100intraday:

 То, что меня интересовало, я нашёл здесь (в справке не удалось найти что-то подобное): http://zulman.googlecode.com/svn/trunk/MT5/Indicators/ColorCandles.mq5. Корректно ли совмещать в своём индикаторе то, о чём я спрашивал, или не совсем, но в этом примере это практикуется и работает без проблем.

А кто говорил, что так делать нельзя? В справке же написано, что можно копировать в индикаторный буфер. Из другого индикатора.
 
Rosh:
А кто говорил, что так делать нельзя? В справке же написано, что можно копировать в индикаторный буфер. Из другого индикатора.
 Да всё просто. Именно с вышеприведённой конструкцией я начал загребать ошибки - тут-то и появились подозрения: а вдруг нельзя? Когда полез в справку за уточнением, оказалось, что она изобилует примерами с SetIndexBuffer+CopyBuffer+INDICATOR_DATA, но в совокупности с INDICATOR_CALCULATIONS ни одного примера не обнаружил, решил, что в этом может быть нюанс, который следует изучать более детально. Но оказалось на поверку проще.
 

Народ, что-то не соображу, почему в первом случае сделки есть, а во втором нет?

void OnTick()
{
//double TIK = SymbolInfoDouble(_Symbol,SYMBOL_BID);
OPEN();
}
void OPEN()
  {
   MqlTradeRequest mrequest;                            
   MqlTradeResult mresult;                                   
      mrequest.action = TRADE_ACTION_DEAL;              
      mrequest.symbol = _Symbol;                      
      mrequest.volume = 1;    
      mrequest.price = SymbolInfoDouble(_Symbol,SYMBOL_BID);                   
      mrequest.sl = 0;                                 
      mrequest.tp = 0;                               
      mrequest.deviation = 5;                             
      mrequest.type= ORDER_TYPE_SELL;                   
      mrequest.type_filling = ORDER_FILLING_FOK;  
      OrderSend(mrequest,mresult);                       
  }

 

void OnTick()
{
double TIK = SymbolInfoDouble(_Symbol,SYMBOL_BID);
OPEN();
}
void OPEN()
  {
   MqlTradeRequest mrequest;                            
   MqlTradeResult mresult;                                   
      mrequest.action = TRADE_ACTION_DEAL;              
      mrequest.symbol = _Symbol;                      
      mrequest.volume = 1;    
      mrequest.price = SymbolInfoDouble(_Symbol,SYMBOL_BID);                   
      mrequest.sl = 0;                                 
      mrequest.tp = 0;                               
      mrequest.deviation = 5;                             
      mrequest.type= ORDER_TYPE_SELL;                   
      mrequest.type_filling = ORDER_FILLING_FOK;  
      OrderSend(mrequest,mresult);                       
  }
 

хых, что, задал я вопросец? вы попробуйте скопировать код и запустить в тестере)) может у меня руки кривые)) ведь, по-идее, строка 

double TIK = SymbolInfoDouble(_Symbol,SYMBOL_BID);

никаким боком не может нарушить работоспособность эксперта. 

 
AUser:

хых, что, задал я вопросец? вы попробуйте скопировать код и запустить в тестере)) может у меня руки кривые)) ведь, по-идее, строка 

никаким боком не может нарушить работоспособность эксперта. 

Согласен, но лучше предоставить детали для воспроизведения. Напишите в Сервисдеск, пожалуйста.
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
AUser:

хых, что, задал я вопросец? вы попробуйте скопировать код и запустить в тестере)) может у меня руки кривые)) ведь, по-идее, строка 

никаким боком не может нарушить работоспособность эксперта. 

Структура MqlTradeRequest имеет больше полей чем вы используете, а следовательно в них находится мусор.
Дело в том, что переменная mrequest локальная (находится в стеке) и наличие или отсутствие других локальных
переменных лежащих в стеке сильно влияет на содержимое неинициализированных полей.
В одном случае Вам "везёт" и там оказываются значения подходящие для OrderSend, в другом нет.

Используйте ZeroMemory для полного обнуления структуры.
 

Если посмотреть в целом по платформам, импорт DLL это что? Исключение доступное в MQL или норма? 

 
220Volt:

Если посмотреть в целом по платформам, импорт DLL это что? Исключение доступное в MQL или норма? 

это комплимент в сторону MQL или вы не знаете как в других платформах?
 
sergeev:
это комплимент в сторону MQL или вы не знаете как в других платформах?
Это вопрос без подтекста, думаю стоил ли переложить основу своих наработк в DLL, для гибкого перехода. А то перспектива каждый раз все переписывать меня не радует
 
220Volt:
думаю стоил ли переложить основу своих наработк в DLL, для гибкого перехода.
ну так перекладывайте. или переживаете что поддержку DLL отключат?
Причина обращения: