vladradon
Программист
Набросал по-быстрому без проверок в тестере. Надеюсь, будет понятно и полезно для начала.Подскажите, пожалуйста, что не так?
Набросал по-быстрому без проверок в тестере. Надеюсь, будет понятно и полезно для начала.Подскажите, пожалуйста, что не так?
спасибо за ответ,начинаю вспоминать что где то читал про это...ECN счет может не дать выставить сразу стандартные тейкпрофит и стоплосс - сначала получаем от команды OrderSend тикет>0 и только потом модификацией выставляем (если нужно) ТП и СЛ. Но, кстати, у меня мои ECN счета обычно на этот счет не капризничали... Но я и пользуюсь в основном только виртуальными закрывашками.
Спасибо большое.Набросал по-быстрому без проверок в тестере. Надеюсь, будет понятно и полезно для начала.
double stopi0()
{
double _SL2 =0.0;
for(int y=0; y<=OrdersTotal()-1; y++)
{
if(OrderSelect(y, SELECT_BY_POS) && OrderMagicNumber()==Magic && OrderSymbol()==_Symbol)
{
if(OrderType()==OP_BUY)
{
if(Loss==0)
{
}
if(Loss==1)
{
}
}
}
}
return(_SL2);
}
double stopi0()
{
double _SL2 =0.0;
if(Loss==0)
{
for(int y=0; y<=OrdersTotal()-1; y++)
{
if(OrderSelect(y, SELECT_BY_POS) && OrderMagicNumber()==Magic && OrderSymbol()==_Symbol)
{
if(OrderType()==OP_BUY)
{
}
}
}
}
if(Loss==1)
{
for(int y=0; y<=OrdersTotal()-1; y++)
{
if(OrderSelect(y, SELECT_BY_POS) && OrderMagicNumber()==Magic && OrderSymbol()==_Symbol)
{
if(OrderType()==OP_BUY)
{
}
}
}
}
return(_SL2);
}
Лучше третий вариант.Подскажите какой вариант исполнения лучше? Я думаю вариант №1. Заранее спасибо.
Вариант №1:
Вариант №2:Код:double stopi0() { double _SL2 =0.0; for(int y=0; y<=OrdersTotal()-1; y++) { if(OrderSelect(y, SELECT_BY_POS) && OrderMagicNumber()==Magic && OrderSymbol()==_Symbol) { if(OrderType()==OP_BUY) { if(Loss==0) { } if(Loss==1) { } } } } return(_SL2); }
Код:double stopi0() { double _SL2 =0.0; if(Loss==0) { for(int y=0; y<=OrdersTotal()-1; y++) { if(OrderSelect(y, SELECT_BY_POS) && OrderMagicNumber()==Magic && OrderSymbol()==_Symbol) { if(OrderType()==OP_BUY) { } } } } if(Loss==1) { for(int y=0; y<=OrdersTotal()-1; y++) { if(OrderSelect(y, SELECT_BY_POS) && OrderMagicNumber()==Magic && OrderSymbol()==_Symbol) { if(OrderType()==OP_BUY) { } } } } return(_SL2); }
Подскажи как реализовать я попробую воплотить этот вариант.Лучше третий вариант
Если мои мозги не совсем высохли, мне помнится я уже встречал эти Loss==0 и Loss== 1. И давал совет относительно лучшего варианта исполнения. Но там решение было не замечено. А теперь мне лениво.Подскажи как реализовать я попробую воплотить этот вариант.
дал бы чуть заметнее подсказкиЕсли мои мозги не совсем высохли, мне помнится я уже встречал эти Loss==0 и Loss== 1. И давал совет относительно лучшего варианта исполнения. Но там решение было не замечено. А теперь мне лениво.
Может я не справедлив, но лень родилась раньше меня. Извиняй…
в каких критериях он должен быть лучше ?Подскажите какой вариант исполнения лучше?
Полистай странички, их по твоему вопросу не так много.дал бы чуть заметнее подсказки
Ничего тормозить не будет если не в кубики играть, а пытаться понять логику построения кода.в каких критериях он должен быть лучше ?
соблюдение заложенной логики, минимум времени исполнения и потребления ресурсов, компактность записи кода или ... ?
как мне кажется, на этапе изучения языка озадачивать себя чем-то не доступным для понимания, будет только тормозить процесс освоения.
или вопрос был не об этом ?
в коде в большинстве случаев "всё по ситуации".Это самая тупая ошибка начинающих.
минимум времени исполнения и потребления ресурсов, компактность записи кода
не спорю, у каждого по своемуНичего тормозить не будет
советую пока не заморачиваться этими вопросамиСпасибо об этом не подозревал
Я говорил не о нём, а вообще обо всех начинающих. И особенно о начинающих дающих советы другим начинающим. На тебя не намекаю…в коде в большинстве случаев "всё по ситуации".
у него встал вопрос : выносить условие за цикл или оставить его внутри цикла (на сколько я понял )
если оно не выполняется и по сути цикл не нужен, то и смысла нет его запускать и ещё и проверять условие при каждой итерации на каждом тике. но во втором варианте расписал "портянку".
вот и что лучше для него ?
не спорю, у каждого по своему
а т.к. уровень знаний у него пока не велик
советую пока не заморачиваться этими вопросами
да и я не особо специалистНа тебя не намекаю…
2) кстати:минимум времени исполнения и потребления ресурсов, компактность записи кода
и как это определять
1. Задумываться о компактности кода и ресурсах, я бы ещё добавил о надёжности работы, стоит когда есть хотя бы микроскопический опыт программирования. Для начала досточно что бы программа заработала и при это относительно правильно.Чего я точно пока не знаю:
1. )Не много дописал твою фразу
2) кстати:
выносить условие за цикл или оставить его внутри цикла (на сколько я понял )выносить условие за цикл или оставить его внутри цикла (на сколько я понял ) - ты правильно понял
3)Не знаю как находить новые функции и как их применять
if (условие открытия ордера селл...)
(
RefreshRates();
OrderSend(Symbol(),OP_SELL,Lot,......)
}
if (условие открытия ордера бай...)
{
RefreshRates();
OrderSend(Symbol(),OP_BUY,Lot,.........)
}
Это как раз тот вариант где надо-бы применить третий вариант.Всем привет!
возник вопрос,как прописать в коде открытие ордеров на открытии свечи,того таймфрейма,в окне которого стоит советник(и чтобы его можно было в тестере погонять),набросал кусок кода ниже в общем виде и нужно ли перед OrderSend(...) вставлять RefreshRates();
Код:if (условие открытия ордера селл...) ( RefreshRates(); OrderSend(Symbol(),OP_SELL,Lot,......) } if (условие открытия ордера бай...) { RefreshRates(); OrderSend(Symbol(),OP_BUY,Lot,.........) }