АвторСообщение





Пост N: 50
Зарегистрирован: 19.11.10
Откуда: Россия, Новочеркасск
ссылка на сообщение  Отправлено: 16.12.12 14:02. Заголовок: Поиск объектов ....


Привет ! вопрос в следующем как программно найти объект на графике или скопированный с другого объекта ...

То есть есть линия или фигура , через контр + мышь сделал параллельную копию ... Как найти этот объект или узнать его имя ???

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 27 , стр: 1 2 3 All [только новые]







Пост N: 58
Зарегистрирован: 19.11.10
Откуда: Россия, Новочеркасск
ссылка на сообщение  Отправлено: 17.12.12 21:46. Заголовок: Ок спасибо за операт..


Ок спасибо за оперативность !

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 59
Зарегистрирован: 19.11.10
Откуда: Россия, Новочеркасск
ссылка на сообщение  Отправлено: 18.12.12 16:59. Заголовок: for(int oo=1;oo &..


for(int oo=1;oo <= Mas_old[0][0]; oo++)

{
for (int ii=1;i <= Mas_tek[0][0];ii++)

{
if (Mas_tek[ii][1] == Mas_old[oo][1])
{
Print("profit totge");
}
if (Mas_tek[ii][2] == Mas_old[oo][2])
{
Print("stop totge");
}
}
}
массивы типа string но почему то компилятор пишет что не верны сравниваемые типы

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 60
Зарегистрирован: 19.11.10
Откуда: Россия, Новочеркасск
ссылка на сообщение  Отправлено: 18.12.12 18:30. Заголовок: Scriptong пишет: а..


Scriptong пишет:

 цитата:
а удаленный объект вычеркивается из массива отслеживаемых объектов.


Вот тут тоже проблема ... Линия удалена но функция comment(); пишет что в ячейке имя осталось .... Я пробовал делать что если обьектфинд не находит линию то перезаписывать ячейку пустотой "" , но тоже результата не дало ...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 559
Зарегистрирован: 03.09.09
ссылка на сообщение  Отправлено: 18.12.12 18:58. Заголовок: voldemar227 пишет: ..


voldemar227 пишет:

 цитата:
массивы типа string но почему то компилятор пишет что не верны сравниваемые типы


Массивы Mas_tek и Mas_old объявлены как string? Тогда ничего удивительного нет: компилятор правильно указывает на тот факт, что значение переменной типа int (переменная цикла) не может сравниваться со значением строковой переменной.

voldemar227 пишет:

 цитата:
Вот тут тоже проблема ... Линия удалена но функция comment(); пишет что в ячейке имя осталось .... Я пробовал делать что если обьектфинд не находит линию то перезаписывать ячейку пустотой "" , но тоже результата не дало ...


Нужно смотреть весь код, как составлен алгоритм, как происходит запись данных и их сравнение между собой.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 61
Зарегистрирован: 19.11.10
Откуда: Россия, Новочеркасск
ссылка на сообщение  Отправлено: 18.12.12 20:09. Заголовок: string ordertiket=&#..


string ordertiket="";
//---------------------------------------------------------------------------//
string Mas_tek[31][3],Mas_old [31][3];
//---------------------------------------------------------------------------//
int start()
{
while(!IsStopped())
{
string name;
//---------------------------------------------------------------------------//
ArrayCopy(Mas_tek, Mas_old);//сохраняем историю
int Kol=0; //колличество ордеров

ArrayInitialize(Mas_tek,0); //обнуляем массив
//---------------------------------------------------------------------------//
for (int i=0; i<OrdersTotal(); i++)
{
if((OrderSelect(i, SELECT_BY_POS)==true) && (OrderSymbol()==Symbol()))
{ordertiket=DoubleToStr(OrderTicket(),0);
Kol++;
//----------------------------------------------------------------------------------------------//
if (ObjectFind(ordertiket)==-1)
{
ObjectCreate (ordertiket,OBJ_HLINE,0,0,OrderOpenPrice());
ObjectSetText(ordertiket,ordertiket);
}
if (OrderType()==OP_BUY)
{
for (int x=0;x<=ObjectsTotal()-1;x++)
{
name=ObjectName(x);
if (ObjectType(name)== OBJ_HLINE)
{
if (ObjectFind(name)==0&&name==ordertiket)
{
Mas_tek[Kol][1] = ordertiket; //по открытию
}
if (ObjectDescription(name)==ordertiket&&OrderOpenPrice()<ObjectGet(name,OBJPROP_PRICE1)&&ObjectGet(name,OBJPROP_PRICE1)>0)
{
Mas_tek[Kol][2] =name; //по профиту
}
if (ObjectDescription(name)==ordertiket&&OrderOpenPrice()>ObjectGet(name,OBJPROP_PRICE1)&&ObjectGet(name,OBJPROP_PRICE1)>0)
{
Mas_tek[Kol][3] =name; //по стопу
}
}
}
}
//----------------------------------------------------------------------------------------------//
}
}

/*
for(int oo=1;oo <= StrToInteger(Mas_old[0][0]); oo++)

{
for (int ii=1;i <= StrToInteger(Mas_tek[0][0]);ii++)

{
if (Mas_tek[ii][1] == Mas_old[oo][1])
{
Print("profit totge");
}
else
{
Mas_tek[ii][1] = "нет линии";}

if (Mas_tek[ii][2] == Mas_old[oo][2])
{
Print("stop totge");
}
else{Mas_tek[ii][2] = "нет линии";}
}
}
*/

Comment( " Цена открытия = ",Mas_tek[1][1],
"\n"," Цена профита = ",Mas_tek[1][2],
"\n"," Цена стопа = ",Mas_tek[1][3],
"\n"," Тикет = ",ordertiket,
"\n"," Обьекты = ",x);
Sleep(50);
}
}
//+------------------------------------------------------------------+
Это весь код

Спасибо: 0 
ПрофильЦитата Ответить
Автор




Пост N: 1053
Зарегистрирован: 21.05.06
Откуда: Украина, Днепропетровск
ссылка на сообщение  Отправлено: 18.12.12 20:40. Заголовок: На этой стадии (у на..


На этой стадии (у нас) возникает естественный вопрос: правильно ли мы понимаем, что Вас чем-то не устраивает AG 4? Если это так, то опишите, пожалуйста, причины. Что Вы хотели бы улучшить? Возможно, что-то мешает (лишний функционал). Чего не хватает? Возможно, дело в условиях лицензирования или просто в желании иметь собственную программу?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 560
Зарегистрирован: 03.09.09
ссылка на сообщение  Отправлено: 18.12.12 20:43. Заголовок: voldemar227 пишет: ..


voldemar227 пишет:

 цитата:
Это весь код


Слишком вольное программирование:

1. Какой смысл копировать один массив в другой, если массив, в который производилось копирование, очищается практически в следующей строке кода после копирования?
2. Функция ArrayInitialize не может применена к строковому массиву. Уточните этот момент в справке. Там явно указано, что массив должен быть числовой.
3. Массив Mas_tek во втором измерении содержит три элемента, но в коде используется четвертый элемент, что недопустимо (индекс последнего элемента в таких массивах - 2):

 цитата:
Mas_tek[Kol][3] =name; //по стопу


4. Что подразумевалось получить в конструкции такого типа, если в этом элементе массива ничего не записано?

 цитата:
StrToInteger(Mas_old[0][0])



Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 62
Зарегистрирован: 19.11.10
Откуда: Россия, Новочеркасск
ссылка на сообщение  Отправлено: 18.12.12 21:25. Заголовок: Scriptong пишет: 4...


Scriptong пишет:

 цитата:
4. Что подразумевалось получить в конструкции такого типа, если в этом элементе массива ничего не записано?

 цитата:
StrToInteger(Mas_old[0][0])


Я хотел запустить цикл для сравнения старого массива и нового

У меня цель сделать модернизацию ордеров как в аг 4
установление линий тейк профита и модернизация и удаление по линиям

с массивами раньше не работал по этому представление имею слабое

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 63
Зарегистрирован: 19.11.10
Откуда: Россия, Новочеркасск
ссылка на сообщение  Отправлено: 18.12.12 21:43. Заголовок: SK пишет: На этой ..


SK пишет:

 цитата:

На этой стадии (у нас) возникает естественный вопрос: правильно ли мы понимаем, что Вас чем-то не устраивает AG 4? Если это так, то опишите, пожалуйста, причины. Что Вы хотели бы улучшить? Возможно, что-то мешает (лишний функционал). Чего не хватает? Возможно, дело в условиях лицензирования или просто в желании иметь собственную программу?


У меня есть сайт (с вашим он не сравница так как мой сайт слабоват ) на котором я выкладываю советников по партнерской программе ... Дополнительный пассивный доход... По мимо торгов на форексе , нет такой психологической нагрузки когда понимаешь что яйца лежат по разным карманам ... И есть программка тестер trading-go называется посмотреть можно тут http://trading-go.ru/index.php
которая как и афтограф 4 выставляет ордера с графика .... Но модернизация ордеров в ней очень плохо построена ... Я не хочу нагружать программу разными фишками и возможностями ....
программа останется такой какая она сейчас есть . Я хочу переработать модернизацию ордеров .... и ни чего больше ... Вы оказали большую помощь мне не только по поводу данной проблемы но и по поводу других моих вопросов .... В знак благодарности я сделаю ссылку на ваш сайт с выражением оной . И также создам пост посвященный аг4 или чему вы пожелаете...
По поводу вашего вопроса

 цитата:

На этой стадии (у нас) возникает естественный вопрос: правильно ли мы понимаем, что Вас чем-то не устраивает AG 4? Если это так, то опишите, пожалуйста, причины. Что Вы хотели бы улучшить? Возможно, что-то мешает (лишний функционал). Чего не хватает? Возможно, дело в условиях лицензирования или просто в желании иметь собственную программу?


я буду с вами честен :
За 7 лет работы на форексе я не встречал людей использующих аг4 , на вопрос какой тестер я мог бы посоветовать для тестирования тактик я всегда говорил аг4 так как лучше я ничего не видел ... и через короткое время слышал отзыв : да программа крутая , неужели это все на мкл4 написано, но сложная, в ней пока разберешься пока сделаешь то что хочешь можно депо слить ...
Мое мнение ( может оно ничего и не стоит ) не стоит делать одну такую сложную программу .... Лучше сделать несколько которые делают разные вещи и чем проще тем лучше .....
может можно все включить в одну программу но отключать блоки ...... Например мне не нужно установка своих торговых тактик, меня полностью устраивал аг 1 , мне не нужны все эти модификации с обьектами .... только открытие и модификация ордеров так как я торгую в основном руками ....
Вобщем основной негативный отзыв сложно, запутанно , 95 % фишек только мешают, и не всегда работает .......
Может есть смысл сделать лайт нормал и про версии......

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 64
Зарегистрирован: 19.11.10
Откуда: Россия, Новочеркасск
ссылка на сообщение  Отправлено: 19.12.12 09:39. Заголовок: Моя логика такова ..


Моя логика такова

voldemar227 пишет:

 цитата:

string ordertiket=""; // текстовая переменная на глоб уровне
//---------------------------------------------------------------------------//
string Mas_tek[31][3],Mas_old [31][3]; // обьявление стрингового массива для 31 ордера по три ячейки для каждого
//---------------------------------------------------------------------------//
int start()
{
while(!IsStopped()) //цикл для быстроты работы
{
string name; // переменная для имен линий
//---------------------------------------------------------------------------//
ArrayCopy(Mas_tek, Mas_old);//сохраняем историю
int Kol=0; //колличество ордеров

//---------------------------------------------------------------------------//
for (int i=0; i<OrdersTotal(); i++) // цикл по ордерам
{
if((OrderSelect(i, SELECT_BY_POS)==true) && (OrderSymbol()==Symbol()))
{ordertiket=DoubleToStr(OrderTicket(),0); // переводим интовское значение тикета в тип стринг
Kol++;
//----------------------------------------------------------------------------------------------//
if (ObjectFind(ordertiket)==-1) если центральной линии нет создать линию с именем тикета
{
ObjectCreate (ordertiket,OBJ_HLINE,0,0,OrderOpenPrice());
ObjectSetText(ordertiket,ordertiket); // сделать описание именем тикета
}
if (OrderType()==OP_BUY) // если ордер бай
{
for (int x=0;x<=ObjectsTotal()-1;x++) // цикл по перебору и поиску новых обьектов
{
name=ObjectName(x); // вернули имя обьекта
if (ObjectType(name)== OBJ_HLINE) //если горизонтальная линия
{
if (ObjectFind(name)==0&&name==ordertiket) // если есть линия с именем тикета и описанием тикита значит это центральная линия
{
Mas_tek[Kol][1] = ordertiket; //запомнить имя в ячейку 1 первого ордера
}
if (ObjectDescription(name)==ordertiket&&OrderOpenPrice()<ObjectGet(name,OBJPROP_PRICE1)&&ObjectGet(name,OBJPROP_PRICE1)>0)
// если есть обьект с описанием тикета и обьект выше цены открытия значит это новая линия для тейк профита
{
Mas_tek[Kol][2] =name; //запомним ее имя во вторую ячейку первого ордера
}
if (ObjectDescription(name)==ordertiket&&OrderOpenPrice()>ObjectGet(name,OBJPROP_PRICE1)&&ObjectGet(name,OBJPROP_PRICE1)>0)
// если есть обьект с описанием тикета и обьект нгиже цены открытия значит это новая линия для стоп лосса
{
Mas_tek[Kol][3] =name; //запомним ее имя в третью ячейку первого ордера
}
}
}
}
//----------------------------------------------------------------------------------------------//
}
}
// с циклом сравнения вообще ничего не получилось так как пишет что не верны типеы сравниваемых данных
// в документации я так и не нашол как сравнить массивы типа стринг
/*
for(int oo=1;oo <= StrToInteger(Mas_old[0][0]); oo++)

{
for (int ii=1;i <= StrToInteger(Mas_tek[0][0]);ii++)

{
if (Mas_tek[ii][1] == Mas_old[oo][1])
{
Print("profit totge");
}
else
{
Mas_tek[ii][1] = "нет линии";}

if (Mas_tek[ii][2] == Mas_old[oo][2])
{
Print("stop totge");
}
else{Mas_tek[ii][2] = "нет линии";}
}
}
*/

Comment( " Цена открытия = ",Mas_tek[1][1],
"\n"," Цена профита = ",Mas_tek[1][2],
"\n"," Цена стопа = ",Mas_tek[1][3],
"\n"," Тикет = ",ordertiket,
"\n"," Обьекты = ",x);
Sleep(50);
}
}



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 27 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет