- ArrayCopy и string
- Вывод параметров индикатора в советник через iCustom()
- [АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4.
1) #property indicator_chart_window - предписывает что индюк будет отображаться в основном окне графика, и для него не будет создано дополнительных окон.
2) глобальная переменная обьявленная экстерном, появится в окне настроек индикатора(советника, скрипта) и будет доступна для редактирования (изменения)
3) так как судя по тому куску кода что вы привели. индикатор рисуется графическими элементами (лейбами), а их можно присоединить к любому окну почему остальное не отображается - приведите весь код, может там и отображаться больше нечему.
4) И вообще юзайте хелп, ибо он рулит...
#property indicator_chart_window //---- extern string note1="Change font colors automatically? True = Yes"; extern bool Bid_Ask_Colors=True; extern string note2="Default Font Color"; extern color FontColor=Black; extern string note3="Font Size"; extern int FontSize=24; extern string note4="Font Type"; extern string FontType="Comic Sans MS"; extern string note5="Display the price in what corner?"; extern string note6="Upper left=0; Upper right=1"; extern string note7="Lower left=2; Lower right=3"; extern int WhatCorner=2; //---- double Old_Price; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { ObjectCreate("Market_Price_Label", OBJ_LABEL, 0, 0, 0); ObjectSet("Market_Price_Label", OBJPROP_CORNER, WhatCorner); ObjectSet("Market_Price_Label", OBJPROP_XDISTANCE, 1); ObjectSet("Market_Price_Label", OBJPROP_YDISTANCE, 1); //здесь вы объявили и разместили графический объект, но ничего в нем не написали, как вы думаете что будет отображаться на экране? return(0); } //------------------------------------------------------------------ int start() { if (Bid_Ask_Colors==True) { if (Bid > Old_Price) FontColor=LawnGreen; if (Bid < Old_Price) FontColor=Red; Old_Price=Bid; } string Market_Price=DoubleToStr(Bid, Digits); //---- ObjectSetText("Market_Price_Label", Market_Price, FontSize, FontType, FontColor); // и только здесь вы в него вписали информацию, как вы думаете куда вы будете ее вписывать на следующем тике если ненароком его удалите ? } //------------------------------------------------------------------ int deinit() { ObjectDelete("Market_Price_Label"); return(0); } //+------------------------------------------------------------------+
И что должно выводиться на график, если кроме лейбы ничего не выводиться ?
Вообще-то, как я говорил в начале, индикатор писал не я. Я только пытаюсь разобраться, как эта штуковина работает. MQL во многом принципиально отличается от С++.
После Init() действительно ничего не выводится. Согласен, тут можно написать текущую цену. Но после первого тика начинает выводиться.Живой пример, в любом другом советнике\индикаторе\скрипте
void deinit(){ObjectsDeleteAll();return;}
после чего сносится вся графика, куда писать будете ?
корректно было бы прежде чем писать, проверить - а есть ли такой объект ?
if(ObjectFind("Market_Price_Label")<0){ ObjectCreate("Market_Price_Label", OBJ_LABEL, 0, 0, 0); ObjectSet("Market_Price_Label", OBJPROP_CORNER, WhatCorner); ObjectSet("Market_Price_Label", OBJPROP_XDISTANCE, 1); ObjectSet("Market_Price_Label", OBJPROP_YDISTANCE, 1); } ObjectSetText("Market_Price_Label", Market_Price, FontSize, FontType, FontColor);
корректно было бы прежде чем писать, проверить - а есть ли такой объект ?
Да, логично, согласен.
Я попробую разобраться сам и не забивать форум пустяками.
Спасибо всем.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования