내가 올바르게 이해했다면 두 MA가 같은 방향으로 움직일 때 상황을 추적하고 있습니다. 더 많은 흥미로운 발견이 당신을 기다리고 있습니다 :))
//это выражение не имеет смысла, if здесь лишнийif MAF_0 - MAF_1 = A
if MAS_0 - MAS_1 = B
//если требовалось определить разницу значений МА на 1-ом и нулевом баре, то можно такdouble A = MAF_0 - MAF_1 ;double B = MAS_0 - MAS_1 ;
코드에서 오류를 찾아내게 도와주세요 컴파일시 오류는 없는데 계산과 트랜잭션이 안통해집니다 (여기 계신 프로분들 미리 감사드립니다.
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжexternint EMA1 =14;// Период 1-й EМАexternint EMA2 =48;// Период 2-й EМАexternint EMA3 =144;// Период 3-й EМА externint period =12;externint porog =3;externint metod =1;externint metod2 =1;externint prise =0;externdouble SL =1000;// СтопЛосс ордераexterndouble TP =500;// ТэйкПрофит ордераexterndouble Lots =0.1;//--------------------------------------------------------------------------------------------int
New_Bar ,// 0/1 Факт образования нового бара
Time_0 ,// Время начала нового бара
total ;// Крличество открытых ордеров//--------------------------------------------------------------------------------------------double
Lot ,// Количество лотов
Norm ,// Предыдущее значение 1-й МА (розов)
Fast ,// Текущее значение 1-й МА (розов)
Slow ,// Текущее значение 2-й МА(голубая)
Signal [];//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжint init (){//============================================================================================
SL = SL *Point;// SL в пунктах
TP = TP *Point;// ТР в пунктахreturn;//============================================================================================}//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжint start (){//============================================================================================
total =OrdersTotal();// Общее количество ордеровif( total ==2)return;// Уже открыты оба ордера//----------------------------------------------------------------------------- Новый бар ----
New_Bar =0;// Для начала обнулимсяif( Time_0 !=Time[0])// Если уже другое время начала бара{
New_Bar =1;// А вот и новый бар
Time_0 =Time[0];// Запомним время начала нового бара}//--------------------------------------------------------------------------------------------//---расчет тренда ввех или вниз (XMA)int limit ;double tmp1 , tmp2 ;int counted_bars =IndicatorCounted();int i ;if( counted_bars <0)return(-1);if( counted_bars >0) counted_bars --;
limit =Bars- counted_bars ;for( i = limit ; i >=0; i --){
tmp1 =iMA(Symbol(),0, period ,0, metod , prise , i );
tmp2 =iMA(Symbol(),0, period ,1, metod2 , prise , i );if(MathAbs( tmp1 - tmp2 )>= porog *Point){ Signal [ i ]= tmp2 ;}//--------------------------------------------------------------------------------------------
Fast =iMA(NULL,0, EMA1 ,0,MODE_EMA,PRICE_CLOSE,0);// Текущее значение 1-й EМА
Norm =iMA(NULL,0, EMA2 ,0,MODE_EMA,PRICE_CLOSE,0);// Предыдущее значение 2-й EМА
Slow =iMA(NULL,0, EMA3 ,0,MODE_EMA,PRICE_CLOSE,0);// Текущее значение 3-й EМА//--------------------------------------------------------------------------------------------if( Fast > Norm && Norm > Slow && New_Bar ==1&&Close[ i ]> Signal [ i ]) Open_Buy ();// Движение снизу вверх = откр. Buyif( Fast < Norm && Norm < Slow && New_Bar ==1&&Close[ i ]< Signal [ i ]) Open_Sell ();// Движение сверху вниз = откр. Sell}return;//============================================================================================}//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжint Open_Buy (){if( total ==1){OrderSelect(0, SELECT_BY_POS );// Выделим ордерif(OrderType()==0)return;// Если он buy, то не открываемся}OrderSend(Symbol(),0, Lots ,Ask,0,Ask- SL ,Ask+ TP ,"",0,0,Blue);// Открываемсяreturn;}//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжint Open_Sell (){if( total ==1){OrderSelect(0, SELECT_BY_POS );// Выделим ордерif(OrderType()==1)return;// Если он sell, то не открываемся}OrderSend(Symbol(),1, Lots ,Bid,0,Bid+ SL ,Bid- TP ,"",0,0,Red);// Открываемсяreturn;}
안녕하세요.
그런 Expert Advisor SimpleMA가 있는데, 나는 그것을 나 자신을 위해 조금, 다만 조금... :-)))라고 부르고 그것을 MASimple_v2x라고 부르고, 나는 코드를 게시한다
그 다음 나는 개선하려고 노력했지만 하지만 하지만
실험 후 오류 발생
내가 뭘 잘못했어?????????????????
미리 감사드립니다
다음과 같이 시도하십시오.
대신 - MAF_0 - MAF_1= A인 경우
MAS_0 - MAS_1=B인 경우
이것은 더블 A = MAF_0 - MAF_1입니다.
더블 B = MAS_0 - MAS_1;
내가 올바르게 이해했다면 두 MA가 같은 방향으로 움직일 때 상황을 추적하고 있습니다. 더 많은 흥미로운 발견이 당신을 기다리고 있습니다 :))
새 주문을 열지 않고 시장 주문에 대한 로트 수를 늘릴 수 있습니까?
내가 아는 한 - 아니! 새 부지를 열 때만. 그리고 거래가 이루어진 후 제비를 늘리는 것이 무슨 의미가 있습니까? 아니면 당신이 올바른 방향으로 어떻게 열렸는지 보았고 더 많은 돈과 더 많은 것을 원한다는 것을 의미합니까?
이제 어떻게 해야 할까요?
아마도 더 좋을 것입니다(더 다재다능함).
코드에서 오류를 찾아내게 도와주세요 컴파일시 오류는 없는데 계산과 트랜잭션이 안통해집니다 (여기 계신 프로분들 미리 감사드립니다.
안녕하세요! 말해주세요!!! 스스로 처리할 수 없는 몇 가지 질문이 있습니다.
1. 하나의 바에서 하나의 주문만 열리도록 만드는 방법은 무엇입니까?
2. 매수, 매도 조건이 있는데 어떤 기능을 사용해야 하나요?
3. 미결 포지션 을 손익분기점으로 이전하는 방법은 무엇입니까?
4. 어떻게 세 가지 조건을 모두 Expert Advisor 코드에 적용할 수 있습니까(가능한 경우 예 사용)?
나는 당신의 대답을 기다리고 있습니다. 미리 감사드립니다.
안녕하세요. 여기에서 나는 우연히 나에게 관심있는 주제에 관한 기사 를 우연히 발견했습니다. 즉, 창의 크기를 선택합니다. .... 최적의 결과를 얻습니다
데이터의 프랙탈 차원 차수의 창 크기를 선택하는 경우. 그것을 계산하려면 충분히 큰 크기의 슬라이딩 창으로 시리즈를 "자르기"해야 합니다.
(그림 5 참조), 그런 다음 예를 들어 Box-count 방법을 사용하여 수신된 데이터의 프랙탈 차원을 계산합니다....
이 슬라이딩 창의 크기를 계산하는 방법을 알려주세요. 또는 적어도 어디에서 찾을 수 있습니다.
사이트에는 작성자의 연락처가 있으므로 출처에 문의하는 것이 좋습니다.만세 성공!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
maniac과 granit77 덕분입니다.
신선한 농담. 컴퓨터 과학 교사가 진행하는 컴퓨터 수업에서 문학 수업.
-Gerasim은, 이.....이......글쎄......하지만 그는 사운드 카드가 없었습니다 :-)))))))))))))))) ))) )
엑스퍼트 어드바이저는 매매조건을 짧게 하려고 노력했습니다. 글쎄, 더 나은 인식을 위해.
즉, 수학적 계산 이 있으면 double을 통해 호출하는 것이 좋습니다.
안녕하세요! 말해주세요!!! 스스로 처리할 수 없는 몇 가지 질문이 있습니다.
1. 하나의 바에서 하나의 주문만 열리도록 만드는 방법은 무엇입니까?
....... ...
나는 당신의 대답을 기다리고 있습니다. 미리 감사드립니다.
https://www.mql5.com/ru/forum/102366
//------
https://www.mql5.com/ru/forum/113983/page2
//------------
https://www.mql5.com/ru/forum/110184
코드에서 오류를 찾아내게 도와주세요 컴파일시 오류는 없는데 계산과 트랜잭션이 안통해집니다(이곳에 계신 프로분들 미리 감사드립니다.
귀하의 코드에서 내 눈을 사로잡는 첫 번째 사항은 확실하지 않지만 EA 에서 IndicatorCounted() 함수를 사용하는 정확성입니다. 나는 그것을 테스트하지 않았지만 그것의 올바른 작동은 사용자 지정 표시기 에서만 보장된다고 믿습니다.