MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1816 1...180918101811181218131814181518161817181818191820182118221823...1953 Yeni yorum Tretyakov Rostyslav 2021.12.15 11:34 #18151 Alexander Avksentyev # : Müdahale için özür dilerim. Bu müstehcenlik değil. Bir şey bilmediğini söylemekten asla korkma - her zaman sor. Şimdi bir örnek yayınlıyorum. Tretyakov Rostyslav 2021.12.15 11:42 #18152 Alexander Avksentyev # : "iTrailStart" ve "iTrailDist" nedir? Alexander Avksentyev 2021.12.15 11:44 #18153 Tretyakov Rostyslav # : "iTrailStart" ve "iTrailDist" nedir? Dahil edilecek nokta sayısı ve piyasadan tsl'ye olan mesafe iTrailStart = 10; //İzlemeyi etkinleştirmek için nokta sayısı; iTrailDist = 10; //Duraktan pazara olan mesafe; Sipariş 11p'ye kadar ise, 11-10=1p kayıpsız. Forumu kirletmemek için herhangi Uladzimir Izerski sayfası traktör F Tretyakov Rostyslav 2021.12.15 12:02 #18154 Alexander Avksentyev # : Dahil edilecek nokta sayısı ve piyasadan tsl'ye olan mesafe Bunun gibi bir şey //--- input parameters int iTrailStart = 10 ; //Кол-во пунктов для включения тралa int iTrailDist = 10 ; //Расстояние от стопа до рынка //--- global parameters int iDistTrail = iTrailDist; //+------------------------------------------------------------------+ void OnTick () { //--- if (iDistTrail<MarketInfo( Symbol (),MODE_STOPLEVEL)) iDistTrail = MarketInfo( Symbol (),MODE_STOPLEVEL); // дальше твой код } //+------------------------------------------------------------------+ void TrailSL() { if (iTrailStart <= 0 ) return ; double sl_lev; for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) { if ( OrderSelect (i, SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic) { if (OrderType() == OP_BUY) { if ((OrderStopLoss() == 0 && Bid > OrderOpenPrice() + iTrailStart * _Point )||(OrderStopLoss() != 0 && Bid > OrderStopLoss() + (iDistTrail+iTrailStep) * _Point )) { sl_lev = NormalizeDouble (Bid - iDistTrail * _Point , Digits ); if (OrderModify(OrderTicket(), OrderOpenPrice(), sl_lev, OrderTakeProfit(), 0 , clrRed )) Print ( "Удачная модифиция стоплосс ордера №" ,OrderTicket()); else Print ( "Не удалось модифицировать стоплосс ордера №" ,OrderTicket(), ". Ошибка: " , GetLastError ()); } } if (OrderType() == OP_SELL) { if ((OrderStopLoss() == 0 && Ask < OrderOpenPrice() - iTrailStart * _Point )||(OrderStopLoss() != 0 && Ask < OrderStopLoss() - (iDistTrail+iTrailStep) * _Point )) { sl_lev = NormalizeDouble (Ask + iDistTrail * _Point , Digits ); if (OrderModify(OrderTicket(), OrderOpenPrice(), sl_lev, OrderTakeProfit(), 0 , clrRed )) Print ( "Удачная модифиция стоплосс ордера №" ,OrderTicket()); else Print ( "Не удалось модифицировать стоплосс ордера №" ,OrderTicket(), ". Ошибка: " , GetLastError ()); } } } } } } //+------------------------------------------------------------------+ Tretyakov Rostyslav 2021.12.15 12:14 #18155 Söyle bana bu sabitler için ENUM var mı yoksa kendinizinkini mi yazmanız gerekiyor? Devamlı Anlam Tanım ÇİZGİ ÇİZ 0 basit çizgi DRAW_SECTION 1 Boş olmayan satır değerleri arasındaki segmentler DRAW_HISTOGRAM 2 Çubuk grafiği DRAW_OKU 3 Oklar (semboller) DRAW_ZIGZAG 4 Çift ve tek doğruların (zikzak) boş olmayan değerleri arasındaki segmentler, 2 DRAW_NONE 12 Herhangi bir çizim eksikliği [ARŞİV!] Forumu kirletmemek için Hatalar, hatalar, sorular [UYARI, KONU KAPALI!] Forumu Alexey Viktorov 2021.12.15 12:25 #18156 Tretyakov Rostyslav # : Söyle bana bu sabitler için ENUM var mı yoksa kendinizinkini mi yazmanız gerekiyor? Devamlı Anlam Tanım ÇİZGİ ÇİZ 0 basit çizgi DRAW_SECTION 1 Boş olmayan satır değerleri arasındaki segmentler DRAW_HISTOGRAM 2 Çubuk grafiği DRAW_OKU 3 Oklar (semboller) DRAW_ZIGZAG 4 Çift ve tek doğruların (zikzak) boş olmayan değerleri arasındaki segmentler, 2 DRAW_NONE 12 Herhangi bir çizim eksikliği Çizim stilleri ENUM_DRAW_TYPE mql4'ü arayın, böyle bir şey yok ... Tretyakov Rostyslav 2021.12.15 12:30 #18157 Alexey Viktorov # : Çizim stilleri ENUM_DRAW_TYPE mql4'ü arayın, böyle bir şey yok ... Teşekkürler, benimkini yazacağım Alexander Avksentyev 2021.12.15 14:23 #18158 Tretyakov Rostyslav # : Bunun gibi bir şey Teşekkürler, daha fazla kazacağım ve çözeceğim. Alexander Avksentyev 2021.12.15 15:11 #18159 Tretyakov Rostyslav # : Bunun gibi bir şey int Login = 4950287 ; datetime time = D'2022.01.01 00:00:00' ; string name = "Test" ; datetime time1 = 0 ; double TP, lastlot, minlot; int Forder; int TakeProfit,TrailStart,TrailDist,TrailStep,TrailTakeProfit,Step,Slippage; double level_count= 0 ; int iDistTrail = iTrailDist; //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// //Torder-Цена открытия первого ордера //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { if (AccountNumber() != Login) { int close = MessageBox ( "Неверный номер счёта" , "Ошибка" , MB_OK | MB_ICONSTOP ); return ( INIT_FAILED ); } else (AccountNumber() == Login); { int close = MessageBox ( "Проверка прошла успешно.Экcперт может приступить к работе." , "Инициализация" , MB_OK | MB_ICONEXCLAMATION ); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// if ( TimeCurrent () > time) { int close = MessageBox ( "Время работы закончилось!!!" , "Время работы" , MB_OK | MB_ICONSTOP ); return ( INIT_FAILED ); } else ( TimeCurrent () < time); { int close = MessageBox ( "Проверка времени работы прошла успешно.Эксперт может приступить к работе!" , "Время работы" , MB_OK | MB_ICONEXCLAMATION ); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// TakeProfit =iTakeProfit; TrailStart =iTrailStart; TrailDist =iTrailDist; TrailStep =iTrailStep; TrailTakeProfit =iTrailTakeProfit; Step =iStep; Slippage =iSlippage; //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// if ( Digits == 3 || Digits == 5 ) { TakeProfit *= 10 ; TrailStart *= 10 ; TrailDist *= 10 ; TrailStep *= 10 ; TrailTakeProfit *= 10 ; Step *= 10 ; Slippage *= 10 ; } return ( INIT_SUCCEEDED ); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit ( const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick () { //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// /* Comment( "\n", name, "\n", " ", Symbol(), "\n", "Тайм Фрейм ", Period(), "\n", AccountCompany(), "\n", "\n ", AccountServer(), "\n", "Lots\n", B_S_Lot(), "\n", "Price ", Bid, "\n", "Дата ", TimeToString( TimeCurrent(), TIME_DATE ), "\n", "Server Time ", TimeToString( TimeCurrent(), TIME_SECONDS ), "\n", "Profit ", Profit(), "\n", "AvTP ", CalcTP (), "\n", "Количество ордеров ", CountTrades(), "\n", "\n ", GetVolumeLotLastOrder(), "\n", "\n", "Процент просадки ", NormalizeDouble( (AccountInfoDouble(ACCOUNT_BALANCE)-AccountInfoDouble(ACCOUNT_MARGIN_FREE))/AccountInfoDouble(ACCOUNT_BALANCE)*100,2) );*/ //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// double body = Close[ 1 ] - Open[ 1 ]; if (CountTrades() == 0 && body > 0 ) BuyOpen(); // Если нет открытых и сигнал бай if (CountTrades() == 0 && body < 0 ) SellOpen(); // Если нет открытых и сигнал селл if (CountTrades( 0 ) > 0 && body > 0 ) BuyOpen(); // Если есть открытые бай и сигнал бай if (CountTrades( 1 ) > 0 && body < 0 ) SellOpen(); // Если есть открытые селл и сигнал селл /* if (iTrailStart<MarketInfo(Symbol(),MODE_STOPLEVEL)) iTrailStart= MarketInfo(Symbol(), MODE_STOPLEVEL * Point); iTrailSL(); */ if (iDistTrail<MarketInfo( Symbol (),MODE_STOPLEVEL)) iDistTrail = MarketInfo( Symbol (),MODE_STOPLEVEL); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// void BuyOpen() //Открытие позиции Buy { Forder = ( OrderSend ( _Symbol ,OP_BUY,Lot,Ask,iSlippage, 0 , 0 , "Коммент" ,Magic, 0 ,Blue)); if (Forder > 0 ) { Print ( "Открыта Позиция BUY" ); if ( OrderSelect (Forder, SELECT_BY_TICKET)) { TP = NormalizeDouble ((Ask+iTakeProfit* _Point ), _Digits ); if (OrderModify(OrderTicket(),OrderOpenPrice(), 0 ,TP, 0 )) Print ( "Ордер Модифицирован BUY " ); else Print ( "Ошибка Модификации Ордера BUY = " , GetLastError ()); } } else Print ( "Ошибка Открытия Позиции BUY" ); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// void SellOpen() //Открытие позиции Sell { Forder = ( OrderSend ( _Symbol ,OP_SELL,Lot,Bid,iSlippage, 0 , 0 , "Коммент Sell" ,Magic, 0 ,Red)); if (Forder > 0 ) { Print ( "Открыта Позиция SELL" ); if ( OrderSelect (Forder, SELECT_BY_TICKET)) { TP = NormalizeDouble ((Bid-iTakeProfit* _Point ), _Digits ); if (OrderModify(OrderTicket(),OrderOpenPrice(), 0 ,TP, 0 )) Print ( "Ордер Модифицирован SELL " ); else Print ( "Ошибка Модификации Ордера SELL = " , GetLastError ()); } } else Print ( "Ошибка Открытия Позиции SELL" ); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// //+------------------------------------------------------------------+ //| Tester function | //+------------------------------------------------------------------+ double OnTester () { //--- double ret= 0.0 ; //--- //--- return (ret); } //+------------------------------------------------------------------+ //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// //+------------------------------------------------------------------+ //| Подсчёт эквити | //+------------------------------------------------------------------+ double Profit(){ double count= 0 ; for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--){ if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)){ if (OrderSymbol() == Symbol () && OrderMagicNumber()==Magic) count+=OrderProfit(); count+=OrderSwap(); } } return ( NormalizeDouble (count, 2 )); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx// void TrailSL() { if (iTrailStart <= 0 ) return ; double sl_lev; for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--) { if ( OrderSelect (i, SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic) { if (OrderType() == OP_BUY) { if ((OrderStopLoss() == 0 && Bid > OrderOpenPrice() + iTrailStart * _Point )||(OrderStopLoss() != 0 && Bid > OrderStopLoss() + (iDistTrail+iTrailStep) * _Point )) { sl_lev = NormalizeDouble (Bid - iDistTrail * _Point , Digits ); if (OrderModify(OrderTicket(), OrderOpenPrice(), sl_lev, OrderTakeProfit(), 0 , clrRed )) Print ( "Удачная модифиция стоплосс ордера №" ,OrderTicket()); else Print ( "Не удалось модифицировать стоплосс ордера №" ,OrderTicket(), ". Ошибка: " , GetLastError ()); } } if (OrderType() == OP_SELL) { if ((OrderStopLoss() == 0 && Ask < OrderOpenPrice() - iTrailStart * _Point )||(OrderStopLoss() != 0 && Ask < OrderStopLoss() - (iDistTrail+iTrailStep) * _Point )) { sl_lev = NormalizeDouble (Ask + iDistTrail * _Point , Digits ); if (OrderModify(OrderTicket(), OrderOpenPrice(), sl_lev, OrderTakeProfit(), 0 , clrRed )) Print ( "Удачная модифиция стоплосс ордера №" ,OrderTicket()); else Print ( "Не удалось модифицировать стоплосс ордера №" ,OrderTicket(), ". Ошибка: " , GetLastError ()); } } } } } } //+------------------------------------------------------------------+ İşte kod, belki doğru belirtmiyorum ama etkisi yok. Tretyakov Rostyslav 2021.12.15 15:38 #18160 Alexander Avksentyev # : İşte kod, belki doğru belirtmiyorum ama etkisi yok. Dergide neler var? Kodun tamamını gönderin ve bir dosya olarak ekleyin. 1...180918101811181218131814181518161817181818191820182118221823...1953 Yeni yorum
Müdahale için özür dilerim.
Bu müstehcenlik değil. Bir şey bilmediğini söylemekten asla korkma - her zaman sor.
Şimdi bir örnek yayınlıyorum."iTrailStart" ve "iTrailDist" nedir?
"iTrailStart" ve "iTrailDist" nedir?
Dahil edilecek nokta sayısı ve piyasadan tsl'ye olan mesafe
iTrailStart = 10; //İzlemeyi etkinleştirmek için nokta sayısı;
iTrailDist = 10; //Duraktan pazara olan mesafe;
Sipariş 11p'ye kadar ise, 11-10=1p kayıpsız.
Dahil edilecek nokta sayısı ve piyasadan tsl'ye olan mesafe
Bunun gibi bir şey
Söyle bana bu sabitler için ENUM var mı yoksa kendinizinkini mi yazmanız gerekiyor?
Devamlı
Anlam
Tanım
ÇİZGİ ÇİZ
0
basit çizgi
DRAW_SECTION
1
Boş olmayan satır değerleri arasındaki segmentler
DRAW_HISTOGRAM
2
Çubuk grafiği
DRAW_OKU
3
Oklar (semboller)
DRAW_ZIGZAG
4
Çift ve tek doğruların (zikzak) boş olmayan değerleri arasındaki segmentler, 2
DRAW_NONE
12
Herhangi bir çizim eksikliği
Söyle bana bu sabitler için ENUM var mı yoksa kendinizinkini mi yazmanız gerekiyor?
Devamlı
Anlam
Tanım
ÇİZGİ ÇİZ
0
basit çizgi
DRAW_SECTION
1
Boş olmayan satır değerleri arasındaki segmentler
DRAW_HISTOGRAM
2
Çubuk grafiği
DRAW_OKU
3
Oklar (semboller)
DRAW_ZIGZAG
4
Çift ve tek doğruların (zikzak) boş olmayan değerleri arasındaki segmentler, 2
DRAW_NONE
12
Herhangi bir çizim eksikliği
ENUM_DRAW_TYPE
Çizim stilleri
ENUM_DRAW_TYPE
Bunun gibi bir şey
Teşekkürler, daha fazla kazacağım ve çözeceğim.
Bunun gibi bir şey
İşte kod, belki doğru belirtmiyorum ama etkisi yok.
İşte kod, belki doğru belirtmiyorum ama etkisi yok.
Dergide neler var?
Kodun tamamını gönderin ve bir dosya olarak ekleyin.