어쨌든 흔적은 위치를 구별해야하므로 주문에 다른 마법을 할당하고 다른 마법으로 두 개의 흔적을 설정할 수 있습니다.
아니면 후행 코드를 어드바이저에 내장해야 합니까? 그런 다음 여전히 주문에 다른 마법을 할당하고 두 마법에 대한 후행 기능을 복제해야 합니다. 임호.
티켓으로 나누려고 했지만 성공하지 못했습니다.
Sancho77 :
어쨌든 흔적은 위치를 구별해야하므로 주문에 다른 마법을 할당하고 다른 마법으로 두 개의 흔적을 설정할 수 있습니다.
어쨌든 흔적은 위치를 구별해야하므로 주문에 다른 마법을 할당하고 다른 마법으로 두 개의 흔적을 설정할 수 있습니다.
코드에서 어떻게 보일까요? 새로운 마술사를 쓰기 위해 각 위치에 대해?
각 위치에 대해 별도의 트롤?
위치 6-8인 경우
더 쉬울 수 없습니까?
트롤은 고문에 있습니다
charony :
코드에서 어떻게 보일까요? 새로운 마술사를 쓰기 위해 각 위치에 대해?
각 위치에 대해 별도의 트롤?
위치 6-8인 경우
더 쉬울 수 없습니까?
글쎄, 위치가 많으면 개별 트롤이 어렵다는 데 동의합니다. 두 위치이지만 내 의견으로는 정상입니다.
어쩌면 더 간단할 수 있지만 다른 주문의 후행에서 차이점은 무엇입니까?
sanyooooook :
Expert Advisor에서 후행을 비활성화하고 내장된 후행을 사용하십시오. 각 위치에 대해 별도의 추적이 있습니다.
Expert Advisor에서 후행을 비활성화하고 내장된 후행을 사용하십시오. 각 위치에 대해 별도의 추적이 있습니다.
재미 없다
//--------------------------------------------------------------- 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 --트롤 코드
글쎄, 나는 각 주문에 차례로 새로운 마법을 할당하는 것을 제안할 수 있을 뿐이며, 각 주문에 대해 다음과 같은 별도의 기능을 만드십시오.
//--------------------------------------------------------------- 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 --
charony :
재미 없다
재미 없다
저렴하고 명랑합니다.
각 위치에 자체 트롤이 있는 경우 트롤 변수의 값은 각 위치에 대해 달라야 합니다. 따라서 각 트레일에는 고유한 변수가 있습니다. 최대 위치는 몇 개입니까?
sanyooooook :
저렴하고 명랑합니다.
각 위치에 자체 트롤이 있는 경우 트롤 변수의 값은 각 위치에 대해 달라야 합니다. 따라서 각 트레일에는 고유한 변수가 있습니다. 최대 위치는 몇 개입니까?
최대 8자리
트롤을 설정하면 한 위치에서 잘 작동합니다.
그러나 위치가 두 개 이상인 경우(예: 두 위치).판매
동시에 둘 다 닫힙니다
포지션별로 따로 작업할 트레일이 필요합니다
이것은 수동 거래 중에 가능합니다. 즉, 하나의 매도 포지션에는 자체 StopLoss가 있습니다.
다른 매도 포지션에는 다른 손절매가 있습니다.
구글은 도움이 되지 않았다