안녕하세요 친애하는 프로그래머입니다. 저에게 프로그래머는 신과 같습니다. 무에서, 허공에서, 작동하는 것, 심지어 물질적인 것까지 만드는 것은 정말 환상적입니다... 시간에 대한 기사를 읽었습니다. 그러나 주기성 설정에 대해서는 언급하지 않았으며 심지어 주기성도 언급하지 않았지만 한 명의 고문에 대해 적절한 시간에 켜고 끄기를 전환했습니다. 아마도 누군가가 이 주제를 물었을 것입니다. 지금은 각각의 시간에 시작하고 꺼지도록 어드바이저의 이름을 바꿔야 하지만 MT5에는 한 쌍의 어드바이저만 있으므로 핸들을 전환해야 합니다. 그리고 그것은 타임 그리드와 같은 것으로 밝혀졌을 것입니다 ... 감사합니다
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5 минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
후행 나는 적시에 켜고 끄는 빈도를 여기에서만 노출합니다. 그들은 생산하지 않으며 반전을 고려하지 않습니다. 글쎄요, 아이디어는 다음과 같습니다. 트레일링 트립 후, 일반적으로 한 시간 또는 15분과 같은 기간이 끝날 때 몇 분을 기다렸다가 다시 켜고 표시기로 정렬을 결정하고 다음 시간까지 계속 이동합니다. 다음 여행 ... :-)))))
시가를 구해서 뭘 넣어야 할지 모르겠는데 평균을 낸 결과 가격을 어디로 옮겨야 하는지 궁금합니다. 아마도 그런 기능이 있을 것입니다.
또는 주문 이력을 통해서만 첫 번째 및 두 번째 주문의 가격을 알아내고 이미 이러한 데이터를 기반으로 평균을 구한다면 이 방법이 너무 복잡하지 않기를 바랍니다!!!
datetime end= TimeCurrent (); // текущее серверное времяdatetime start=end- PeriodSeconds ( PERIOD_D1 ); // установим начало на сутки назад//--- запросим в кэш программы нужный интервал торговой историиHistorySelect (start,end);
//--- получим количество сделок в историиint deals= HistoryDealsTotal ();
//--- получим тикет сделки, имеющей последний индекс в спискеulong deal_ticket= HistoryDealGetTicket (deals- 1 );
if (deal_ticket> 0 ) // получили в кэш сделку, работаем с ней
{
//--- тикет ордера, на основании которого была проведена сделкаulong order = HistoryDealGetInteger (deal_ticket, DEAL_ORDER );
long order_magic= HistoryDealGetInteger (deal_ticket, DEAL_MAGIC );
long pos_ID = HistoryDealGetInteger (deal_ticket, DEAL_POSITION_ID );
double priceh = HistoryDealGetInteger (deal_ticket, DEAL_PRICE ); // не могу определить цену открытия
PrintFormat ( "Сделка #%d по ордеру #%d с ORDER_MAGIC=%d участвовала в позиции %d" ,
deals- 1 ,order,order_magic,pos_ID);
}
else// неудачная попытка получения сделки
{
PrintFormat ( "Всего в истории %d сделок, не удалось выбрать сделку" +
" с индексом %d. Ошибка %d" ,deals,deals- 1 , GetLastError ());
}
//--- получим общее количество позицийint positions= PositionsTotal ();
//--- пробежим по списку ордеровfor ( int i= 0 ;i<positions;i++)
{
ResetLastError ();
//--- скопируем в кэш позицию по ее номеру в спискеstring symbol= PositionGetSymbol (i); // попутно получим имя символа, по которому открыта позицияif (symbol!= "" ) // позицию скопировали в кэш, работаем с ней
{
long pos_id = PositionGetInteger ( POSITION_IDENTIFIER );
double price = PositionGetDouble ( POSITION_PRICE_OPEN );
ENUM_POSITION_TYPE type=( ENUM_POSITION_TYPE ) PositionGetInteger ( POSITION_TYPE );
long pos_magic = PositionGetInteger ( POSITION_MAGIC );
string comment = PositionGetString ( POSITION_COMMENT );
if (pos_magic==EA_Magic)
{
PositionModify( Symbol (), NormalizeDouble (( - StopLoss* _Point ), 4 ),
NormalizeDouble (( + TakeProfit* _Point ), 4 )); // ну здесь еще через запрос в зависимости от типа ордера
}
PrintFormat ( "Позиция #%d по %s: POSITION_MAGIC=%d, цена=%G, тип=%s, комментарий=%s" ,
pos_id,symbol,pos_magic,price, EnumToString (type),comment);
}
else// вызов PositionGetSymbol() завершился неудачно
{
PrintFormat ( "Ошибка при получении в кэш позиции c индексом %d." +
" Код ошибки: %d" , i, GetLastError ());
}
}
예를 들어 어드바이저가 있고 OnTick 이벤트가 있으며 조건에 따라 포지션이 열리거나 닫힙니다. EA는 기간을 설정할 수 있는 전략 테스터에서 테스트할 수 있습니다. 나는 그들이 어떻게 관련되어 있는지 이해하지 못합니다. 전략 테스터에서 EA를 테스트 할 때 모든 틱에 응답하지 않습니까? 아니면 테스터에서 지정된 시간 프레임에만 반응합니까? 질문이 명확하기를 바랍니다.
내가 왜 전략 테스터 에 손절매와 이익을 넣지 않고 시장 가격으로만 포지션을 오픈하는지 알려주시겠습니까?
열려면 CTrade(trade.Buy)를 사용합니다.
나는 (trade.PositionOpen) 을 사용하여 열려고 시도했는데, 데모에서는 열리고 중지가 되지만 테스터에서는 중지가 0이고 무엇이 문제일 수 있는지 이해가 되지 않습니다.
당신이 수동으로 할 수 있다는 것은 분명합니다. 로봇이 전시되어야합니다.
주문 수정 기능을 만드는 방법은 무엇입니까?
https://www.mql5.com/ru/articles/134
안녕하세요! 조언자에게 차이가 있습니까? 최소 보증금은 1000 & (달러 계정) 또는 1000 루블 (루블 계정)입니까?
친애하는 도움!!! 이미 완성된 전략의 마지막 단계에서 손이 떨어지고 있습니다. 거래를 평균할 수 없음
거래를 성사시키려고 합니다. 하지만 설정에서
시가를 구해서 뭘 넣어야 할지 모르겠는데 평균을 낸 결과 가격을 어디로 옮겨야 하는지 궁금합니다. 아마도 그런 기능이 있을 것입니다.
또는 주문 이력을 통해서만 첫 번째 및 두 번째 주문의 가격을 알아내고 이미 이러한 데이터를 기반으로 평균을 구한다면 이 방법이 너무 복잡하지 않기를 바랍니다!!!
친애하는 도움!!! 이미 완성된 전략의 마지막 단계에서 손이 떨어지고 있습니다. 거래를 평균할 수 없음
거래를 성사시키려고 합니다. 하지만 설정에서
시가를 구해서 뭘 넣어야 할지 모르겠는데 평균을 낸 결과 가격을 어디로 옮겨야 하는지 궁금합니다. 아마도 그런 기능이 있을 것입니다.
또는 주문 이력을 통해서만 첫 번째 및 두 번째 주문의 가격을 알아내고 이미 이러한 데이터를 기반으로 평균을 구한다면 이 방법이 너무 복잡하지 않기를 바랍니다!!!
안녕하세요 한 가지만 명확히 해주세요.
예를 들어 어드바이저가 있고 OnTick 이벤트가 있으며 조건에 따라 포지션이 열리거나 닫힙니다. EA는 기간을 설정할 수 있는 전략 테스터에서 테스트할 수 있습니다. 나는 그들이 어떻게 관련되어 있는지 이해하지 못합니다. 전략 테스터에서 EA를 테스트 할 때 모든 틱에 응답하지 않습니까? 아니면 테스터에서 지정된 시간 프레임에만 반응합니까? 질문이 명확하기를 바랍니다.