Birbirinden bağımsız iki pozisyonu yöneten bir kar trolünün tavsiyesine ihtiyacım var, nasıl uygulayabilirim?
Her durumda, izin pozisyonları ayırt etmesi gerekir, böylece siparişlere farklı büyüler atayabilir ve farklı büyülere sahip iki iz oluşturabilirsiniz.
Yoksa takip eden kodun danışmana eklenmesi mi gerekiyor? O zaman yine de siparişlere farklı büyüler atamanız ve iki büyü için takip işlevini çoğaltmanız gerekir. BENİM NACİZANE FİKRİME GÖRE.
Her durumda, izin pozisyonları ayırt etmesi gerekir, böylece siparişlere farklı büyüler atayabilir ve farklı büyülere sahip iki iz oluşturabilirsiniz.
kodda nasıl görünecek? her pozisyon için yeni bir sihirbaz yazmak için?
her pozisyon için ayrı bir trol?
ve eğer pozisyonlar 6-8 ise
daha kolay olamaz mı?
trol danışmanda
kodda nasıl görünecek? her pozisyon için yeni sihirbaz yazmak için?
her pozisyon için ayrı bir trol?
ve eğer pozisyonlar 6-8 ise
daha kolay olamaz mı?
Pek çok pozisyon varsa, o zaman her bir trol için zor, katılıyorum. Bence iki pozisyon ama normal.
Belki daha basit olabilir ama farklı siparişlerin takibindeki fark ne olmalı?
Expert Advisor'da izlemeyi devre dışı bırakın ve yerleşik izlemeyi kullanın, her konum için ayrı bir iz vardır.
komik değil
//--------------------------------------------------------------- 1 -- // Функция модификации StopLoss всех ордеров указанного типа // Глобальные переменные: // Mas_Ord_New Массив ордеров последний известный // int TralingStop Значение TralingStop(количество пунктов) //--------------------------------------------------------------- 2 -- int Tral_Stop( int Tip) { int Ticket; // Номер ордера double Price, // Цена открытия рыночного ордера TS, // TralingStop (относит.знач.цены) SL, // Значение StopLoss ордера TP; // Значение TakeProfit ордера bool Modify; // Признак необходимости модифи. //--------------------------------------------------------------- 3 -- for ( int i= 1 ;i<=Mas_Ord_New[ 0 ][ 0 ];i++) // Цикл по всем ордерам { // Ищем ордера задан. типа if (Mas_Ord_New[i][ 6 ]!=Tip) // Если это не наш тип.. continue ; //.. то переступим ордер Modify= false ; // Пока не назначен к модифи Price =Mas_Ord_New[i][ 1 ]; // Цена открытия ордера SL =Mas_Ord_New[i][ 2 ]; // Значение StopLoss ордера TP =Mas_Ord_New[i][ 3 ]; // Значение TakeProft ордера Ticket=Mas_Ord_New[i][ 4 ]; // Номер ордера if (TralingStop<Level_new) // Если меньше допустимого.. TralingStop=Level_new; // .. то допустимый TS=TralingStop*Point; // То же в относит.знач.цены //--------------------------------------------------------- 4 -- switch (Tip) // Переход на тип ордера { case 0 : // Ордер Buy if (NormalizeDouble(SL,Digits)< // Если ниже желаемого.. NormalizeDouble(Bid-TS,Digits)) { // ..то модифицируем его: SL=Bid-TS; // Новый его StopLoss Modify= true ; // Назначен к модифи. } break ; // Выход из switch case 1 : // Ордер Sell if (NormalizeDouble(SL,Digits)> // Если выше желаемого.. NormalizeDouble(Ask+TS,Digits)|| NormalizeDouble(SL,Digits)== 0 ) //.. или нулевой(!) { // ..то модифицируем его SL=Ask+TS; // Новый его StopLoss Modify= true ; // Назначен к модифи. } } // Конец switch if (Modify== false ) // Если его не надо модифи.. continue ; // ..то идём по циклу дальше bool Ans=OrderModify(Ticket,Price,SL,TP, 0 ); //Модифицируем его! //--------------------------------------------------------- 5 -- if (Ans== false ) // Не получилось :( { // Поинтересуемся ошибками: if (Errors(GetLastError())== false ) // Если ошибка непреодолимая return ; // .. то уходим. i--; // Понижение счётчика } } return ; // Выход из пользов. функции } //--------------------------------------------------------------- 6 --trol kodu
Pekala, sadece sırayla her siparişe yeni bir büyü atamayı önerebilirim ve her sipariş için aşağıdaki gibi ayrı bir işlev yapın:
//--------------------------------------------------------------- 1 -- // Функция модификации StopLoss всех ордеров указанного типа // Глобальные переменные: // Mas_Ord_New Массив ордеров последний известный // int TralingStop_1 Значение TralingStop(количество пунктов) //--------------------------------------------------------------- 2 -- int Tral_Stop( int Tip) { int Ticket; // Номер ордера double Price, // Цена открытия рыночного ордера TS, // TralingStop (относит.знач.цены) SL, // Значение StopLoss ордера TP; // Значение TakeProfit ордера bool Modify; // Признак необходимости модифи. //--------------------------------------------------------------- 3 -- if(OrderMagicNumber() == magic_1){ for ( int i= 1 ;i<=Mas_Ord_New[ 0 ][ 0 ];i++) // Цикл по всем ордерам { // Ищем ордера задан. типа if (Mas_Ord_New[i][ 6 ]!=Tip) // Если это не наш тип.. continue ; //.. то переступим ордер Modify= false ; // Пока не назначен к модифи Price =Mas_Ord_New[i][ 1 ]; // Цена открытия ордера SL =Mas_Ord_New[i][ 2 ]; // Значение StopLoss ордера TP =Mas_Ord_New[i][ 3 ]; // Значение TakeProft ордера Ticket=Mas_Ord_New[i][ 4 ]; // Номер ордера if (TralingStop<Level_new) // Если меньше допустимого.. TralingStop=Level_new; // .. то допустимый TS=TralingStop*Point; // То же в относит.знач.цены //--------------------------------------------------------- 4 -- switch (Tip) // Переход на тип ордера { case 0 : // Ордер Buy if (NormalizeDouble(SL,Digits)< // Если ниже желаемого.. NormalizeDouble(Bid-TS,Digits)) { // ..то модифицируем его: SL=Bid-TS; // Новый его StopLoss Modify= true ; // Назначен к модифи. } break ; // Выход из switch case 1 : // Ордер Sell if (NormalizeDouble(SL,Digits)> // Если выше желаемого.. NormalizeDouble(Ask+TS,Digits)|| NormalizeDouble(SL,Digits)== 0 ) //.. или нулевой(!) { // ..то модифицируем его SL=Ask+TS; // Новый его StopLoss Modify= true ; // Назначен к модифи. } } // Конец switch if (Modify== false ) // Если его не надо модифи.. continue ; // ..то идём по циклу дальше bool Ans=OrderModify(Ticket,Price,SL,TP, 0 ); //Модифицируем его! //--------------------------------------------------------- 5 -- if (Ans== false ) // Не получилось :( { // Поинтересуемся ошибками: if (Errors(GetLastError())== false ) // Если ошибка непреодолимая return ; // .. то уходим. i--; // Понижение счётчика } } return ; // Выход из пользов. функции } } //--------------------------------------------------------------- 6 --
komik değil
Ucuz ve neşeli.
Her pozisyonun kendi trolü varsa, trol değişkeninin değeri her pozisyon için farklı olmalıdır. Bu nedenle, her yolun kendi değişkeni vardır, maksimum kaç pozisyonunuz olacak?
Ucuz ve neşeli.
Her pozisyonun kendi trolü varsa, trol değişkeninin değeri her pozisyon için farklı olmalıdır. Bu nedenle, her yolun kendi değişkeni vardır, maksimum kaç pozisyonunuz olacak?
maksimum 8 pozisyon
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
trolü kurun, tek pozisyonla iyi çalışıyor
ancak birden fazla pozisyon varsa, örneğin iki pozisyon.Sat
ikisini aynı anda kapatıyor
Her pozisyon için ayrı ayrı çalışacak patikaya ihtiyacım var
bu, manuel ticaret sırasında mümkündür, yani bir Satış pozisyonunun kendi StopLoss'u vardır.
başka bir Satış pozisyonunun farklı bir StopLoss'u var
google yardımcı olmadı